使用EF4。假设我有这个:
IQueryable<ParentEntity> qry = myRepository.GetParentEntities();
Int32 n = 1;
我想做的是这个,但EF无法与null进行比较。
qry.Where( parent => parent.Children.Where( child => child.IntCol == n ) != null )
这有什么用,但它产生的SQL(正如你想象的那样)是非常低效的:
qry.Where( parent => parent.Children.Where( child => child.IntCol == n ).FirstOrDefault().IntCol == n )
我怎样才能做第一次比较null而不会生成嵌套查询等等?
答案 0 :(得分:3)
试试这个:
qry.Where( parent => parent.Children.Any( child => child.IntCol == n ));
Linq中的 Any
转换为sql中的exists
。
如果我理解你的查询正确,这就是你需要的。