У меня есть стандартная схема магазина с таблицей InvoiceLine, которая содержит продукты. Я хотел бы получить список 5 лучших продуктов по продажам в виде списка. Какой самый чистый способ сделать это? Это не может быть лучшим способом:
private List<Product> GetTopProducts(int count)
{
var topProducts = from invoiceLine in storeDB.InvoiceLines
group invoiceLine by invoiceLine.ProductId into grouping
orderby grouping.Count() descending
select new
{
Products = from Product in storeDB.Products
where grouping.Key == Product.ProductId
select Product
};
return topProducts.AsEnumerable().Cast<Product>().Take(count).ToList<Product>();
}