zoukankan      html  css  js  c++  java
  • linq to entity之字符串比较

    刚做到这块,有涉及到字符串比较问题。linq to entity 是不支持像sql语句中的两个字符串的比较的

    比如sql:select * from  aaa where aa.name>'A001' and aa.name<'B001'

    遇到这个情况如何处理呢

    在写linq的时候 开始的想法就这样

    using (XTDBEntities edm=new XTDBEntities())
    {
    return edm.XT_Card.Where(s => s.CardNum >= startCode && s.CardNum <= endCode).Count();
    }
    但是聪明的你会发现这个编译是不能通过的。那怎么办呢

     通过简单的 “点”发现 居然有个CompareTo这个扩展方法 那我们看看他的定义

    public int CompareTo(string strB)
        System.String 的成员

    摘要:
    将此实例与指定的 System.String 对象进行比较,并指示此实例在排序顺序中是位于指定的 System.String 之前、之后还是与其出现在同一位置。

    参数:
    strB: System.String。

    返回值:
    一个 32 位有符号整数,该整数指示此实例在排序顺序中是位于 value 参数之前、之后还是与其出现在同一位置。 值 条件 小于零 此实例位于 strB 之前。 零 此实例在排序顺序中的位置与 strB 相同。 大于零 此实例位于 strB 之后。 - 或 - strB 为 null。

    有了这个就好办多了

    那我们就将上面的那句话改造一下

    return edm.XT_Card.Count(s => s.CardNum.CompareTo(startCode) >= 0 && s.CardNum.CompareTo(endCode) <= 0);

    这样就达到了sql中的大于,小于。以及使用的between...and的效果

  • 相关阅读:
    记第一场省选
    POJ 2083 Fractal 分形
    CodeForces 605A Sorting Railway Cars 思维
    FZU 1896 神奇的魔法数 dp
    FZU 1893 内存管理 模拟
    FZU 1894 志愿者选拔 单调队列
    FZU 1920 Left Mouse Button 简单搜索
    FZU 2086 餐厅点餐
    poj 2299 Ultra-QuickSort 逆序对模版题
    COMP9313 week4a MapReduce
  • 原文地址:https://www.cnblogs.com/hack1506/p/2098054.html
Copyright © 2011-2022 走看看