Contains Query on multiple columns

2019-05-05 17:10发布

How do I search multiple columns using LINQ to SQL when any one of the column could be null?

IEnumerable<User> users = from user in databaseUsers
        where
             user.ScreenName.Contains(search)
             || user.FirstName.Contains(search)
             || user.LastName.Contains(search)
        select user;

I keep getting this exception:

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

3条回答
Rolldiameter
2楼-- · 2019-05-05 17:24

add not null condition 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;
查看更多
仙女界的扛把子
3楼-- · 2019-05-05 17:25

Either your user is a null entry, or your databaseUsers are not initialized.

查看更多
乱世女痞
4楼-- · 2019-05-05 17:45
IEnumerable<User> users = from user in databaseUsers
where
     (user.ScreenName + ' ' + user.FirstName + ' ' + user.LastName).Contains(search)
select user;
查看更多
登录 后发表回答