2011-05-24 110 views
0

请帮我写EF查询。EF查询:如何限制嵌套项目

我有以下表格:

Products 
ProductId 
Name 

Items 
    ProductId 
    Cost 

如何选择名为“AAA”只与该项目的成本等于100的产品?

我写了下面:

ctx.Products.Include("Items").Where(p=>p.Name == "AAA" && p.Items.Any(i=>i.Cost == 100)).FirstOrDefault() 

但作为一个结果,我用的产品名称为“AAA”,并与所有项目。

感谢, 德米特里

回答

0

那是因为你正在装载产品的所有项目。在任何情况下,我想尝试走另一条路,即主查询可能是这样的

from i in items 
where i.Product.Name == "AAA" && i.Cost == 100 
select i 

所有这些项目应具有相同的产品,你可以贪婪加载的产品太多,如果你需要的。

ctx.Items.Include("Products")