包含多列的查询

Lau*_*att 4 c# exception-handling nullreferenceexception linq-to-sql

当列中的任何一列可能为空时,如何使用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;
Run Code Online (Sandbox Code Playgroud)

我一直得到这个例外:

你调用的对象是空的.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例.

And*_*ich 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;
Run Code Online (Sandbox Code Playgroud)