Я пытаюсь получить список «популярных продуктов» на сайте электронной торговли, используя LINQ to SQL - продукты упорядочены и становятся строками в таблице выкупа со столбцом количества, указывающим заказанное количество.
Вот соответствующие биты таблиц:
Продукт
ProductId INT
ProductTitle VARCHAR
(other columns not shown)
Выкуп
RedemptionId INT
ProductId INT
Quantity INT
(other columns not shown)
У меня проблемы с группировкой, а затем упорядочением по сумме заказанного количества. Вот что у меня есть:
(from product in Products
join redemption in Redemptions on product.ProductId equals redemption.ProductId
group product by new { product.ProductId, product.ProductTitle } into g
orderby g.Sum(r => r.Key.Quantity) // Quantity is not part of the key :(
select g.Key).Take(5)
Хотя я могу сгруппировать продукты в объединении для погашения, я не могу заказать по сумме заказанных количеств.
В идеале я хочу, чтобы возвращался только объект продукта, а не анонимный тип, включая количество.