C# Linq to SQL — Group by

Posted 炫丽彩虹的男人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Linq to SQL — Group by相关的知识,希望对你有一定的参考价值。

需求是需要统计数据库中表某一列的总数量,同时以List的形式返回到UI层。

Linq to SQL中的Group by用法如下:

复制代码
IList<Unit.HandleCountClass> result;

result = (from a in db.handleinfo_users
             group a by a.han_Server into g
             select new HandleCountClass
              {
                    type = g.Key,
                    Handlecount = g.Count()
               }).ToList();
复制代码

<补充说明>
1、返回的格式是List,它的参数形式是某个对象,但由于是统计Count()后的总数量,现有的对象类中没有可以满足的,所以我在Unit共用层定义一个HandleCountClass的类,类的结构代码会在后面进行介绍。

2、g.key指的就是Group by的字段名,如在我的这个例子当中,就是han_Server字段。

 

HandleCountClass类:

    public class HandleCountClass
    {
        public string type;
        public int Handlecount;
    }

 

相应的SQL代码如下:

select han_Server,COUNT(han_Server) as Servercount from handleinfo_users
group by han_Server

 

以上是关于C# Linq to SQL — Group by的主要内容,如果未能解决你的问题,请参考以下文章

LINQ to SQL 实现 GROUP BY聚合ORDER BY

LINQ to SQL语句之Group By/Having

LINQ to Sql 左外连接与 Group By 和 Have 子句

LINQ体验——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains

将包含 where、group by、sum 和必须的 MySQL 语句转换为 Linq to Sql

EF Linq to Sql 多表left join查询并对结果group by分组之后进行count,max等处理