使用LINQ实现分组统计

protected void Page_Load(object sender, EventArgs e)
{
    WorkOfTARSDataContext myDataContext = new WorkOfTARSDataContext();
//法1       

var huojiang1 =
from j in myDataContext.Huojiangmingxi
join lb in myDataContext.Huojiangleibie on j.Leibie equals lb.Id
join jb in myDataContext.Huojiangjibie on j.Jibie equals jb.Id
join dc in myDataContext.Huojiangdengci on j.Dengci equals dc.Id
select new {获奖类别 = lb.Mingcheng, 获奖级别 = jb.Mingcheng,获奖等次=dc.Mingcheng } into g
group g by new { g.获奖类别, g.获奖级别,g.获奖等次 } into g2
orderby g2.Key.获奖类别,g2.Key.获奖级别,g2.Key.获奖等次
select new {类别=g2.Key.获奖类别,级别=g2.Key.获奖级别,等次=g2.Key.获奖等次,数量=g2.Count()};

//法2

var huojiang2 =
from j in myDataContext.Huojiangmingxi
orderby j.Leibie,j.Jibie,j.Dengci
group j by new { j.Leibie, j.Jibie, j.Dengci } into g
join lb in myDataContext.Huojiangleibie on g.Key.Leibie equals lb.Id
join jb in myDataContext.Huojiangjibie on g.Key.Jibie equals jb.Id

原文地址:https://www.cnblogs.com/luoyaoquan/p/2556385.html