Мое приложение имеет модель Entity Framework, содержащую отношение «многие ко многим», как показано ниже:
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.