Подтвердить что ты не робот

Как я могу получить счет в linq

У меня есть таблица под названием 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 и С#, а мое DbContext - tsgdbcontext.

4b9b3361

Ответ 1

Используйте 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()
                        });

Ответ 2

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

int count = (from p in tsgdbcontext.Products
             where p.productid == 2 && p.productprice > 100
             select p).Count();