我使用LINQ掙扎,因此它是一個蹩腳的問題,但仍.. 我有以下4列如何計算linq to sql中多個不同的列?
Pid SKU colorid sizeid
1 'A65102' 38 2
2 'A65102' 38 4
3 'A65102' 38 18
我一定要得到的顏色和大小的選擇多少不同可用於這樣的表。
在SQL中,我用做:
select count(distinct [sizeid]) ,count(distinct [colors])
from [item_master]
where sku = 'A65102'
但在LINQ中,我可以通過
var dd = (from im in db.item_masters
where im.sku.Contains("A65102")
select new {im.sizeid,im.colors });
得到所有的值,但我怎麼能得到不同值的計數在單個查詢中?
這裏的關鍵是什麼。在哪裏(grp => grp.Key ==「A65102」)休息我可以理解。你的回答是寫出正確的結果,但請詳細說明,以便我瞭解它是如何實現的。 – Ratna
@Ratna:'Enumerable.GroupBy'返回一個'IEnumerable>',它有一個屬性'Key',映射到你用於分組的屬性,在本例中爲'sku'。該組可以包含多個記錄,但它們都共享相同的組密鑰「A65102」。您也可以使用其他方式:'Where(im => im.sku ==「A65102」)。GroupBy(im => im.sku)' –