当列中的任何一列可能为null时,如何使用LINQ to SQL搜索多个列?
IEnumerable<User> users = from user in databaseUsers
where
user.ScreenName.Contains(search)
|| user.FirstName.Contains(search)
|| user.LastName.Contains(search)
select user;
我一直得到这个例外:
对象引用未设置为 对象的实例。
描述:一个 未处理的异常发生在 当前网络的执行 请求。请查看堆栈跟踪 有关错误的更多信息 它起源于代码。
异常详细信息: System.NullReferenceException:Object 引用未设置为的实例 一个对象。
答案 0 :(得分:8)
添加非空条件user.Property != null
IEnumerable<User> users = from user in databaseUsers
where
(user.ScreenName != null && user.ScreenName.Contains(search))
|| (user.FirstName != null && user.FirstName.Contains(search))
|| ( user.LastName != null && user.LastName.Contains(search))
select user;
答案 1 :(得分:2)
IEnumerable<User> users = from user in databaseUsers
where
(user.ScreenName + ' ' + user.FirstName + ' ' + user.LastName).Contains(search)
select user;
答案 2 :(得分:0)
您的用户是空条目,或者您的databaseUsers未初始化。