码迷,mamicode.com
首页 > 其他好文 > 详细

EF空字段使用contains查询的解决办法

时间:2016-06-12 13:54:11      阅读:711      评论:0      收藏:0      [点我收藏+]

标签:

在用entityframework访问数据库时通常使用contains来实现模糊查询,用法如下:

var userlist= (IEnumerable<User>)data.Where(t => t.Name.Contains(querystring));

如果字段HostName允许为空且在数据库中存在空值(NULL),使用contains会出现常见的报错:

 

Object reference not set to an instance of an object.

(未将对象引用到对象的实例. )

 

数据库中存在的空字段(null)没有实例化。

解决方法:

使用三目运算符,首先判断该字段是否为空,是则返回false,否则执行contains

 

原理:

Contains关键字的工作原理是返回一个bool值,当满足contains条件时返回true,否则返回false,以此来决定本条数据是否要获取,所以判断字段为空就直接用false来返回来跳过执行contains

 

用法如下:

var userlist= (IEnumerable<User>)data.Where(t => (string.IsNullOrWhiteSpace(t.Name) ? false : t.Name.Contains(querystring));

 

EF空字段使用contains查询的解决办法

标签:

原文地址:http://www.cnblogs.com/XCCU-2015/p/5577198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!