5.x文档地址
http://www.donet5.com/Home/Doc
1.分组查询
var group = db.Queryable<Student>().GroupBy(it => it.Id)
.Having(it => SqlFunc.AggregateCount(it.Id) > 10)
.Select(it => new { id = SqlFunc.AggregateCount(it.Id) }).ToList();多个GroupBy写法如下
var group = db.Queryable<Student>().GroupBy(it => it.Id).GroupBy(it => it.Type)
.Having(it => SqlFunc.AggregateCount(it.Id) > 10)
.Select(it => new { id = SqlFunc.AggregateCount(it.Id) }).ToList();还可以
.GroupBy(it => new {it.Id,it.Type})
2.简单去重
var list3 = db.Queryable<Student>()
.GroupBy(it => new { it.Id, it.Name }).Select(it=>new{ it.id,it.Name}).ToList();
// 性能优于 select distinct id,name from student所以我暂不支持distinct去重,结果是一样的3.去重并且返回所有列(分组第一条)
group by只能返回特定列,PartitionBy可以返回所有列
var list3 = db.Queryable<Student>()
.PartitionBy(it => new { it.Id, it.Name }).Take(1).ToList();2016 © donet5.comApache Licence 2.0