как я могу получить счет в linq - PullRequest
19 голосов
/ 10 сентября 2011

У меня есть таблица с именем products со столбцами:

productid ,
productname,
productprice
categoryid

Моя проблема в том, что я хочу получить количество продуктов в зависимости от названия продукта вместе с подробной информацией. Я хочу показать данные в DataGridView. Как узнать количество продуктов для одного названия продукта, как показано ниже?

productid        productname          productavailable        productprice
--------------------------------------------------------------------------
1                product A            2 products(product A)   100
2                product B            5 Products(product B)   200

Как и в приведенной выше таблице, я должен отобразить в DataGridView. Я использую LINQ и C #, и мое DbContext имя tsgdbcontext.

Ответы [ 2 ]

41 голосов
/ 10 сентября 2011

Используйте GroupBy с ключом, который содержит ваши свойства группировки.Затем select выводит ключевые свойства вместе с количеством каждого из группировки.

var query = tsgdbcontext.Products
                        .GroupBy(p => new {
                            p.ProductId,
                            p.ProductName,
                            p.ProductPrice
                         })
                        .Select(g => new {
                            g.Key.ProductId,
                            g.Key.ProductName,
                            g.Key.ProductPrice,
                            Available = g.Count()
                        });
31 голосов
/ 10 сентября 2011

Не уверен, что я точно понимаю + делаю некоторые предположения, но вот пример запроса linq, который производит подсчет, основанный на некоторых произвольных критериях выбора (id = 2 и цена больше 100) ...

int count = (from p in tsgdbcontext.Products
             where p.productid == 2 && p.productprice > 100
             select p).Count();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...