2015-09-19 1 views
0

У меня есть таблица Categories и Products. Одна категория может иметь несколько продуктов, и я хочу получить ТОП-5 продуктов и ТОП-3 категории для каждого продукта. Я попробовалПолучить верхние n записей с вершиной m относительной таблицы в Entity Framework

entity.Categories.Include("Products").Take(3) 

Но результат этого - 3 Категории и все товары под них. Я попытался

entity.Categories.Take(5).Include("Products").Take(3) 

Но, конечно, это не будет работать, потому что Include нельзя назвать в Take. Так что же может быть решением? Пожалуйста, предложите.

+0

Вы хотите топ пять продуктов для каждой верхней 3 категории или вы хотите топ пять продуктов среди всех 3 высшей категории? –

+0

Как бы то ни было, число не мое беспокойство. Можете ли вы предложить запрос? – Imad

+0

@ImadoddinIbnAlauddin Вы посмотрели на этот вопрос http://stackoverflow.com/questions/17939528/get-top-5-products-in-each-category-and-subcategory-using-entity-framework –

ответ

0

Наконец я решил, что

var result = entity.Categories.Select 
         (
          cats => new 
           { 
            cats.CategoryName, 
            cats.Description, 
            Products = cats.Products.Take(3) 
           } 
         ).Take(5);