2015-10-16 26 views
-1

我有这样的SQL:SQL到LINQ:使用GROUP BY,连接,其中具有数

select p.ProductID, count(pa.Value) as condition 
from ProductBE as p 
join ProductAttributeBE as pa 
on p.ProductID = pa.ProductID 
where ProductCategoryID = 1203 
and (Value = 'PassingerCar' or Value = '15') 
group by p.ProductID 

ProductBE是一个更具有ProductAttributeBE 什么想接缝是这样的:

var query1 = from p in this.DataBase.ProductBEs 
      join a in this.DataBase.ProductAttributeBEs 
      on p.ProductID equals a.ProductID 
      where p.ProductCategoryID == 1203 && (a.Value == radius ||     a.Value == carType) 
      group p by p.ProductID into grp 
      select new { grp.Key, Condition = grp.Count(x => x.Value != null) }; 

此代码不编译 有问题,或者选择不同的表/ allias分组

+1

什么是错误? –

回答

0

试试这个:

var query1 = from p in this.DataBase.ProductBEs 
      join a in this.DataBase.ProductAttributeBEs 
      on p.ProductID equals a.ProductID 
      where p.ProductCategoryID == 1203 && (a.Value == radius || a.Value == carType) 
      select new {p.ProductID, a.Value} into t 
      group t by t.ProductID into grp 
      select new { grp.Key, Condition = grp.Count(x => x.Value != null) };