2016-08-17 94 views
1

我有一个查询,我在SQL中编写的,它的工作原理,我试图将其移到适当的LINQ语句,似乎无法得到它很正确。Linq分组多个在哪里条件

SQL查询:

select sku 
from Table 
group by sku 
having count(sku) > 1 and count(distinct(unit)) > 1 

和我到目前为止使用LINQ什么

var dupCount = (from val in dt.AsEnumerable() 
        group val by new {sku = val[4]} into grp 
        where grp.Count() > 1 && grp.unit.Distinct().Count() > 1 
        select grp).ToList(); 

我似乎无法弄清楚如何在组内告诉那里只与拉记录一个独特的“单位储备”。

回答

1

我似乎无法弄清楚如何告诉组内的哪里只有一个独特的“unitreserve”拉记录。

Select的 “unitreverse” 领域,应用Distinct然后Count它:

where grp.Count() > 1 && 
     grp.Select(dr => dr["unitreserve"]).Distinct().Count() > 1