原文: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(("查询条件")

最新文章

  1. LEETCODE —— Populating Next Right Pointers in Each Node
  2. 你知道什么是Grunt么?
  3. 深入探讨 java.lang.ref 包
  4. JavaScript高级程序设计笔记 事件冒泡和事件捕获
  5. Shell 环境变量 & 参数变量
  6. Javascript delete 引用类型对象
  7. visifire3.6.8 去水印方法
  8. Python 基础篇:介绍
  9. jQuery中的join方法
  10. Unity3D 之3D游戏入门Hello world(一)
  11. iframe顶部跳转跨域问题
  12. NSSet使用小结
  13. 把linux可执行程序做成一个服务[转]
  14. C#实现拷贝对象
  15. CentOS 7 使用yum安装出现错误
  16. 生成SSH密钥添加到GitHub
  17. zabbix通过自动发现tomcat应用端口监控连接数
  18. Android 提高 gradle 的编译速度
  19. Python 解决Python安装包时提示Unable to find vcvarsall.bat的问题
  20. lamda匿名函数(与sorted(),filter(),map() 一起用), 递归函数, 二分查找

热门文章

  1. [Javascript] Write a function pipeline
  2. 找不到头文件xxxxx.h file not found
  3. Erlang 转至维基百科
  4. NOIP模拟 Date - Tarjan
  5. TensorFlow 学习(九)—— 初始化函数(概率分布函数 api、常数生成函数)
  6. Cordova-Android-Android target:not installed
  7. win10 支持默认把触摸提升鼠标事件 打开 Pointer 消息
  8. dotnet core 使用 sqlite 部署到 Centos 服务器
  9. Python 图像处理: 生成二维高斯分布蒙版
  10. IT企业级应?开发模式演化