我使用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)' –