2015-10-16 25 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) };