2015-10-25 111 views
1

我有一個SQL查詢,我試圖轉換成C#中的LINQ查詢表達式,但我無法正確執行。將SQL查詢轉換爲linq查詢表達式

查詢如下:

select 
    P.id, P.name, COUNT(S.orderqty) 
from 
    product as P 
inner join 
    sales as S on P.id = S.id 
group by 
    p.id, p.name 

我的LINQ代碼:

IQueryable<ReportType1> query = 
    from product in EngineContext.Products 
    join SalesOrder inEngineContext.SalesOrderDetails 
    on product.ProductID equals SalesOrder.ProductID 
    group SalesOrder.OrderQty by product into groups 
    select new ReportType1() {  
     Year = null, 
     ProducId = groups.Key.ProductID, 
     Name = groups.Key.Name, 
     Quantity = ?? 
    }; 

怎麼寫的Quantity價值?組的

回答

1

Count方法:

select new ReportType1 
{ 
    Year = null, 
    ProducId = groups.Key.ProductID, 
    Name = groups.Key.Name, 
    Quantity = groups.Count() 
} 
+0

謝@Backs。有用。但它是如何做的? –

+0

@MohammadRezaTaghipour你是什麼意思?它的工作原理是LinqToSql,它將方法轉換爲sql-code – Backs

+0

是的,我的問題並不清楚!我的意思是「groups.Count()」指的是什麼?它是否完全是指「SalesOrder.OrderQty」? –