EF查询:如何约束嵌套项

时间:2011-05-24 15:04:33

标签: entity-framework

请帮我写一下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”的产品和所有商品。

谢谢, 德米特里

1 个答案:

答案 0 :(得分:0)

那是因为您正在加载产品的所有商品。在任何情况下,我都会尝试另一种方式,即主要查询可能是这样的

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

所有这些产品应该具有相同的产品,如果需要,您也可以急切地加载产品。

ctx.Items.Include("Products")