linq中的查詢與傳統T-SQL有些不同,它為了體現VS的智能提示,在SQL寫法上進行了自己的規定,如傳統的select語句,可能是這樣
select * from order_info
但在linq中,它會被寫成這樣
from data in order_info select data
今天要說的問題是linq 中的分組查詢問題,也就是group by 問題,它是否可以支持對多個字段進行分組呢?
我們先來做實驗,對訂單中的所有用戶進行分組,查出他們的訂單金額總和
from m in Order_Info
group m by m.UserID into p
select new { ID = p.Key, score =p.Sum(m=>m.TotalFee)}
結果如下:
OK,現在需求有變化了,需要去把所有用戶的訂單金額進行統計的同時,還要將用戶的支付方式進行區別,言外之意就是說要對用戶和它的支付方式同時進行分組
代碼可以這樣寫,用一個匿名對象來存儲這兩個字段即可
from m in Order_Info
group m by new{m.PayType,m.UserID} into p
select new { ID = p.Key, score =p.Sum(m=>m.TotalFee)}
結果如下:
最后推薦一個測試Linq的工具,LinqPad,挺好用的,呵呵。