将不确定变为确定~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,挺好用的,呵呵。

回到目录

posted @ 2012-05-23 14:45  张占岭  阅读(3857)  评论(5编辑  收藏  举报