我真的非常,在LINQ以外的其他任何事情上都应该是一个简单的查询(例如SQL!)
我有两个实体:
Product
ProductApprover
Product实体在ProductApprover实体上具有一对多关系,例如:
Product.ProductApprovers为我提供了与产品相关的所有ProductApprover实体。
通过我的Product实体上的ProductID列查询获取产品和关联的ProductApprover数据非常简单,因为关联的ProductApprover数据会自动捆绑到结果中,但是当我想通过查询数据来改变我的查询时出现问题我关联的ProductApprover实体。我已尝试使用'Where','Contains'和'Any',函数等来执行子查询,但似乎无法得到我想要的结果。
我想要执行的查询是:
SELECT * FROM Product p
INNER JOIN ProductApprover pa ON p.ProductId = pa.ProductId
WHERE p.ProductId = @id AND pa.Version = @version
有人可以帮帮我吗?提前谢谢你。
答案 0 :(得分:1)
我怀疑你想要这样的东西:
var query = from product in db.Products
where product.ProductId == productId
select new {
Product = product,
Approvers = product.Approvers.Where(pa => pa.Version == version)
};
如果那不符合你的要求,你能解释一下它落在哪里吗?
答案 1 :(得分:1)
试试这个(我猜这是你对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 };