Запрос агрегации с Linq to Entities

Я пытаюсь запросить отношения базы данных Northwind между категориями и продуктами, где каждая категория имеет несколько продуктов...

Я ищу запрос, который вернет категорию 1 с наибольшим количеством продуктов в ней.

Это насколько я понял

       var results = from c in entities.CategorySet
                      orderby c.Products.Count descending                         
                      select new { 
                          CategoryName = c.CategoryName, 
                          ProductCount = c.Products.Count 
                      };

        var result = results.Take(1).First();

есть более действенный способ?


person Rod Johnson    schedule 14.12.2009    source источник


Ответы (2)


Что насчет этого:

var result = (from c in entities.CategorySet
                      orderby c.Products.Count descending                         
                      select new { 
                          CategoryName = c.CategoryName, 
                          ProductCount = c.Products.Count 
                      }).First();
person Graviton    schedule 14.12.2009

Используя это

var results = (from c in entities.CategorySet
               orderby c.Products.Count descending
               select new {c.CategoryName, ProductCount = c.Products.Count }).Take(1);

Примерно так же, как если бы вы сделали это с помощью инструкции Sql. Так что более эффективного способа я не вижу.

person Adriaan Stander    schedule 14.12.2009