第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > .net mvc lambda表达式Contains方法

.net mvc lambda表达式Contains方法

时间:2020-06-03 20:02:36

相关推荐

.net mvc lambda表达式Contains方法

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

众所周知,想在EntityFrame实体框架中使用类似于SQL语句中like的效果时就的使用Contains方法了。可是关于Contains方法使用过程中会出现的细节问题,并没有专门的文章来指出来。

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的值。

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

stringstr = null;

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

因此不要忘记将代码

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

改写为:

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。