Извлечь верхние N строк таблицы в Entity Framework - PullRequest
1 голос
/ 06 июня 2011

Я застрял с проблемой, которая у меня есть.Среди прочего, у меня есть эти таблицы в моей БД:

Product (int productId, ...otherProductInfo)
Customer (int customerId, ...otherCustomerInfo)
SoldToData ( int productId, int customerId)

Я хочу получить десятку продаваемых продуктов, используя Entity Framework в MVC2.Как я могу это сделать?

* 1005. *//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Следуя советам thekip и Pr0fess0rX, это то, что я сделал до сих пори, похоже, работает:
using (Entities db = new Entities())
{
    var groupedProducts = (from p in db.Products
                        join s in db.SoldToData
                            on p.productId equals s.productId
                        group p by p.id
                            into ProductGroup
                            orderby ProductGroup.Count() descending
                            select ProductGroup).Take(10).ToList();
     List<Products> products = new List<Products>();
     products.AddRange(groupedProducts.Select(gp => gp.First()));
}

Это правильный путь?

Ответы [ 2 ]

4 голосов
/ 06 июня 2011

Если у вас есть IQueryable для запроса источника данных, вы можете использовать orderby и т. Д. Для упорядочения с последующим Take (10)?

1 голос
/ 06 июня 2011
  1. Присоединяйтесь и к продукту, и к клиенту
  2. Сгруппируйте их и получите количество продуктов на одного клиента
  3. По убыванию порядка.
  4. Возьмите топ-10 раз
  5. Получить название полученного продукта (топ 10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...