我真的非常非常努力地在LINQ以外的任何事物(例如SQL!)中处理应该很简单的查询
。我有两个实体:
Product
ProductApprover
产品实体在产品审批者实体上具有一对多关系,例如:
Product.Product审批者为我提供了与产品相关的所有 Product审批者实体。
通过我的产品实体上的 ProductID 列进行查询时,获取产品和关联的产品审批者数据非常简单,因为关联的产品审批者数据会自动捆绑到结果中,但是当我想通过查询关联的 Product审批者实体中的数据来更改查询时,我的问题就出现了。我已经尝试了各种使用"Where","Contains"和"Any",函数等来执行子查询,但似乎无法得到我想要的结果。
我要执行的查询是:
SELECT * FROM Product p
INNER JOIN ProductApprover pa ON p.ProductId = pa.ProductId
WHERE p.ProductId = @id AND pa.Version = @version
有人可以帮我吗?提前谢谢你。
试试这个(我想这是你的SQL查询的LINQ解释):
int id = 123;
int version = 555;
var results = from p in context.Products
join pa in context.ProductApprovers
on p.ProductId = pa.ProductId
where p.ProductId equals id && pa.Version equals version
select new { Product = p, Approver = pa };
我怀疑你想要这样的东西:
var query = from product in db.Products
where product.ProductId == productId
select new {
Product = product,
Approvers = product.Approvers.Where(pa => pa.Version == version)
};
如果这不能满足你想要的效果,你能解释一下它在哪里掉下来吗?