我的应用程序有一个实体框架模型,其中包含多对多关系,如下所示:
ProductGroup:
Scalar: Id, Name
Navigation: ProductGroupProduct
Product:
Scalar: Id, Sku, Description, etc.
Navigation: ProductGroupProduct
ProductGroupProduct:
Scalar: ProductGroupId, ProductId, Position
Navigation: Product, ProductGroup
请注意中间表如何具有名为Position的标量属性,该属性指定产品在产品组中的显示顺序。
如何编写LINQ查询,返回按Position属性排序的给定产品组中的产品列表?如果我写的是好的SQL,我会写这样的东西:
SELECT p.Id, p.Sku, p.Description
FROM Product p
INNER JOIN ProductGroupProduct pgp ON p.Id = pgp.ProductId
WHERE pgp.ProductGroupId = @MyProductGroupId
ORDER BY pgp.Position
但是我无法想出LINQ。
答案 0 :(得分:3)
嗯,你的SQL不起作用,因为没有ProductGroup.Position
但我想你想要:
var q = from pgp in Context.ProductGroupProducts
where pgp.ProductGroup.Id == id
orderby pgp.Position
select pgp.Product;