Как я могу получить счет в 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
.
Ответы
Ответ 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();