LINQ查询二“;OR”;不起作用

本文关键字:OR 不起作用 查询 LINQ | 更新日期: 2023-09-27 18:21:32

我正试图从ActiveDirectory中选择数据,但我的LINQ查询不起作用。

DataServiceReference.Service1Client newService = new DataServiceReference.Service1Client();
            var query = from data in newService.GetAccounts()
                        where (data.SamAccountName.Contains(txtSearchBox.Text)
                        || data.GivenName.Contains(txtSearchBox.Text)
                        || data.EmailAddress.Contains(txtSearchBox.Text)) //2nd OR
                        select new { GivenName = data.SamAccountName, ID = data.ID };
            repSearchResult.DataSource = query;
            repSearchResult.DataBind();

当我尝试添加第二个||时,查询不起作用

The value for column 'EmailAddress' in table 'ActiveDirectory2' is DBNull.

但上面有数据。

LINQ查询二“;OR”;不起作用

|| (data.EmailAddress == null || 
         data.EmailAddress.Any(em=> em.Contains(txtSearchBox.Text))))  //2nd OR

如果EmailAddress是一个集合,您应该检查它是否包含任何LIKE %searchText% 元素

若集合可以为null,那个么您可以在查询之前添加一个条件,但若它是针对数据库运行的,那个么应该没问题。