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”且包含所有商品的产品。 谢谢, 德米特里     

解决方法

那是因为您正在加载产品的所有项目。无论如何,我都会尝试采用其他方式,即主查询可能是这样的
from i in items
where i.Product.Name == \"AAA\" && i.Cost == 100
select i
所有这些项目应具有相同的产品,并且如果需要,您也可以急于加载该产品。
ctx.Items.Include(\"Products\")
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...