我有这样的代码:
var organisations = Uow.Query<Organisation>()
.Where(x => x.PersonOrganisationRoles.Any(por =>
por.Person.FirstName != null &&
por.Person.FirstName.ToLower().Contains(searchFragmentLower)));
因此,组织人员和角色之间存在桥接表。此查询尝试查找具有包含字符串的FirstName的人的组织。
问题是,当我运行它时,我得到:
不能使用Person [FirstName&lt;&gt; NULL]作为Any或All表达式
中逻辑表达式的一部分
如何查看null
?
答案 0 :(得分:2)
你试过por => !string.IsNullOrEmpty(por.Person.FirstName)
吗?
答案 1 :(得分:0)
看起来有些东西抱怨Linq正在生成的SQL
尝试在运行any
之前将null检查移动到where子句中var organisations = Uow.Query<Organisation>().
Where(x => x.PersonOrganisationRoles.Where(por => por != null && por.Person != null && por.Person.FirstName != null).Any(por => phr.Person.FirstName.ToLower().Contains(searchFragmentLower)));