LinQPad と AdventureWorks LT DB を使用して 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
?構文を短くすることは可能ですか?
ありがとう。