我试图从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.
但它有一个数据。
答案 0 :(得分:3)
|| (data.EmailAddress == null ||
data.EmailAddress.Any(em=> em.Contains(txtSearchBox.Text)))) //2nd OR
如果EmailAddress
是一个集合,您应该检查它是否包含LIKE %searchText%
如果集合可以为null,则可以在查询之前添加条件,但如果它针对数据库运行则应该没问题。