将不确定变为确定~Linq的Group是否可以根据多个字段进行分组
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,挺好用的,呵呵。