0
我使用LinQPad和AdventureWorks LT DB學習LINQ查詢。SQL到LINQ轉換 - 分組由
我想將下面的SQL轉換爲LINQ,它是成功的,併產生我想要的。
SELECT SalesOrderID, SUM(OrderQty) as TotalQty, SUM(UnitPrice) as TotalPrice
FROM SalesLT.SalesOrderDetail detail
WHERE detail.SalesOrderID = '71920'
GROUP BY detail.SalesOrderID;
LINQ查詢的替代品的上方。
from detail in SalesOrderDetails
where detail.SalesOrderID.Equals(71920)
group detail by detail.SalesOrderID into g
select new {
SalesOrderID = g.Select(item =>item.SalesOrderID).Distinct().First(), /*Distinct() : Enumerable<Int32>, First() Int32 */
TotalQty = g.Select(item =>Convert.ToDouble(item.OrderQty)).Sum(),
TotalPrice = g.Select(item =>item.UnitPrice).Sum()
}
但我想知道它是必要使用
Select new { ... }
創建另一個struct
?是否有可能縮短語法?
謝謝。
+1:擊敗我9秒; p我會離開我的替代語法。我也喜歡'g.Key'的用法:) – leppie
@leppie然後+1替代語法;) –