列を持つ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
です。
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()
});
私が正確に理解しているかどうかはわかりませんが、いくつかの仮定を立てていますが、これは、任意の選択基準(id = 2および100を超える価格)に基づいてカウントを生成するlinqクエリの例です...
int count = (from p in tsgdbcontext.Products
where p.productid == 2 && p.productprice > 100
select p).Count();