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的效果

  • 相关阅读:
    原生和jQuery的ajax用法
    sublime常用快捷键
    用filter:grayscale将图片过滤成灰色
    Docker搭建Zookeeper集群问题总结
    Linux下jdk环境配置
    window MySQL解压缩版部署及配置
    Windows下Nginx的配置及配置文件部分介绍
    JS 特性:可选链(?.)
    509道Java面试题解析:2020年最新Java面试题
    阿里面试题BIO和NIO数量问题附答案和代码
  • 原文地址:https://www.cnblogs.com/hack1506/p/2098054.html
Copyright © 2011-2022 走看看