如何针对EF Efficient进行此查询?

时间:2010-04-22 23:22:26

标签: entity-framework

使用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而不会生成嵌套查询等等?

1 个答案:

答案 0 :(得分:3)

试试这个:

qry.Where( parent => parent.Children.Any( child => child.IntCol == n ));
Linq中的

Any转换为sql中的exists

如果我理解你的查询正确,这就是你需要的。