2016-07-08 14 views
-2

私のlinqクエリのコード化に問題があります。SQLクエリをlinqクエリに変更する - 構文

これは私のSQLクエリです:

select 
    price, (cast(sum(Quantity) as decimal(7,2))) 
from 
    OrderDetails 
where 
    ItemID = 1000 
group by 
    price 
order by 
    price 

は、これは私のLINQクエリです:

var result = from od in db.OrderDetails 
      where od.ItemID == 1000 
      orderby od.Price 
      group by price 
      select od.price, (cast(sum(od.Quantity) as decimal(7, 2))); 

このLINQクエリが正しくないようです。正しい構文は何ですか?

答えて

1

これは動作するはずです: (あなたがグループ化した後にするための部分を移動する必要がある)

var q = (from o in context.OrderDetails 
      where o.ItemID == 1000 
      group o by o.price into grp 
      select new 
      { 
       Price = grp.Key, 
       Quantity = grp.Sum(x => x.Quantity) 
      }).OrderBy(a => a.Price); 
+1

それは働いていません。 – coco

+1

これは機能します。ありがとうございました! – coco

関連する問題