请帮我写一下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 :(得分:0)
那是因为您正在加载产品的所有商品。在任何情况下,我都会尝试另一种方式,即主要查询可能是这样的
from i in items
where i.Product.Name == "AAA" && i.Cost == 100
select i
所有这些产品应该具有相同的产品,如果需要,您也可以急切地加载产品。
ctx.Items.Include("Products")