原文:Lambda表达式Contains方法 like


1、使用Contains方法的必备条件:

Contains等价于SQL中的like语句。不过Contains只针对于字符串(string)类型的数据而言。如果是int等数值类型,则不会有Contains方法的存在,因此数值字段貌似无法通过使用Lambda表达式来完成like操作。因此在使用实体框架的同时,设计数据的时候如果想使用like请确保数据库字段为字符串类型(text、varchar等)。否则在想模糊查询的时候让你痛苦不堪。


2、Contains方法关联方法(均等价于SQL中的like[注意:这里为什么会说是等价呢,因为如下列出的方法均为Stirng里的方法。like的应用是不分字符类型的,数值行亦可]):

Contains等价于like '%key%' 指示指定的 String 对象是否出现在此字符串中。

EndsWith等价于like '%key' 确定此字符串实例的结尾是否与指定的字符串匹配。

StartsWith等价于like
'key%'  确定此字符串实例的开头是否与指定的字符串匹配。


3、使用Contains方法时前往不要忘记非NULL的判断:

写这边文章的原因来自,今天在使用Contains来做查询的时候,一直报错(未将对象引用设置到对象的实例。)。

一开始百思不得其解,经过跟踪和调试最后才发现数据库中如果存在值为NULL的值。

为什么会报错,看看如下的代码,想必大家也就知道其中的所以然了。

string str = null;

str.Contains("报错啦");//这里会报“未将对象引用设置到对象的实例。”错

因此不要忘记将代码

o.SearchKeyword.Contains("查询条件")

改写为:

o.SearchKeyword != null &&
o.SearchKeyword.Contains(("查询条件")

C# Lambda表达式Contains方法 like的更多相关文章

  1. JAVA8之Lambda表达式与方法引用表达式

    一.Lambda表达式 基本语法: lambdaParameters->lambdaBody lambdaParameters传递参数,lambdaBody用于编写逻辑,lambda表达式会生成 ...

  2. 编写高质量代码改善C#程序的157个建议——建议150:使用匿名方法、Lambda表达式代替方法

    建议150:使用匿名方法.Lambda表达式代替方法 方法体如果过小(如小于3行),专门为此定义一个方法就会显得过于繁琐.比如: static void SampeMethod() { List< ...

  3. 编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法

    建议37:使用Lambda表达式代替方法和匿名方法 在建议36中,我们创建了这样一个实例程序: static void Main(string[] args) { Func<int, int, ...

  4. java8 探讨与分析匿名内部类、lambda表达式、方法引用的底层实现

    问题解决思路:查看编译生成的字节码文件 目录 测试匿名内部类的实现 小结 测试lambda表达式 小结 测试方法引用 小结 三种实现方式的总结 对于lambda表达式,为什么java8要这样做? 理论 ...

  5. java8的新特性之lambda表达式和方法引用

    1.1. Lambda表达式 通过具体的实例去体会lambda表达式对于我们代码的简化,其实我们不去深究他的底层原理和背景,仅仅从用法上去理解,关注两方面: lambda表达式是Java8的一个语法糖 ...

  6. C#10新特性-lambda 表达式和方法组的改进

    C# 10 中对Lambda的语法和类型进行了多项改进: 1. Lambda自然类型 Lambda 表达式现在有时具有"自然"类型. 这意味着编译器通常可以推断出 lambda 表 ...

  7. Java函数式编程:一、函数式接口,lambda表达式和方法引用

    Java函数式编程 什么是函数式编程 通过整合现有代码来产生新的功能,而不是从零开始编写所有内容,由此我们会得到更加可靠的代码,并获得更高的效率 我们可以这样理解:面向对象编程抽象数据,函数式编程抽象 ...

  8. 十二、C# 委托与Lambda表达式(匿名方法的另一种写法)

    委托与Lambda表达式   1.委托概述 2.匿名方法 3.语句Lambda 4.表达式Lambda 5.表达式树   一.委托概述 相当于C++当中的方法指针,在C#中使用delegate 委托来 ...

  9. Lambda表达式Contains方法(等价于SQL语句中的like)使用注意事项

    貌似已经半年多没写一篇帖子了,充分的说明要么老总一天折腾的让人心齐疲惫,没心情去写:要么另外一种可能就是自己不思进取,说白了就是懒.好在这种状态在今天被打破了.MoNey加油. 众所周知,想在Enti ...

随机推荐

  1. css3使用transform属性制作js弹性运动

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  2. Eclipse Che安装依赖

    java Java 用于运行Che的服务器和用于创建Plug-in包的SDK工具,所以需要安装Java Jdk 1.8 如果只是运行Che的话下载JRE就足够了,但是加入你需要从源代码编译的话你还需要 ...

  3. [Cordova+Sencha Touch] 移动开发1 sencha 2.4.0 + 在 安卓2.3.6上使用报错 - has no method 'bind'

    Sencha Touch 2.3.2和2.4.0在安卓2.3上面用会报错,具体报错信息如下: 解决办法是: 打开文件:你的file:///android_asset/www/sencha-touch- ...

  4. 在JScript中使用正则表达式

    作者:朱金灿 来源:http://blog.csdn.net/clever101 不废话了,直接用代码说明吧: main(); function main() { try { // 运用正则表达式进行 ...

  5. CSS动作

    5.过渡 tansition  (由一个状态过渡到另外一个状态的过程)             transition            过渡                 参数1:        ...

  6. iOS 注册或登录页面(UILable,UITextField,UIButton)

    注册或登录页面 例如下面的附图 1,为了在这里展示UITextField文本框关联的键盘设置.在这里,"password"和"判定password"关联键盘被设 ...

  7. Linux下Qt5.6 Fcitx无法输入中文输入解决办法

    Qt5.6的解决办法和之前的版本有点不同,方法如下:首先安装 fcitx-frontend-qt5.然后执行: 123 sudo cp /usr/lib/x86_64-linux-gnu/qt5/pl ...

  8. 解决:eth0安装插卡无法自己主动,网卡的配置信息不network-scripts于

    问题方案:eth0安装插卡无法自己主动,网卡的配置信息不network-scripts于 解决: 1>vi /etc/rc.d/rc.loacl 最后加 ifup eth0 2>reboo ...

  9. R 语言的学习(一)

    1. 基本 "hello world!" > "hello world!" [1] "hello world!" 这在 R 中并不是一 ...

  10. Qt、Qte与Qtopia(Qt嵌入式的发展历程)

    Qt的授权是分为两条线,商业版和开源版.如果使用商业版的Qt,那么开发出的程序可以是私有的和商业的:如果使用的是开源版的Qt,由于其使用的是GPL协议,那么可发出的程序也必须是GPL的.不过自从qt ...