EF LINQ GroupBy方法

EF中的GroupBy方法是用来实现sql语句中的group by的。

但是要注意,GroupBy方法要写在Select方法的前面!否则获取到的数据难以转化为C#中的实体

例如 一个员工表 Worker 字段如下

 主键:ID  姓名:Name  性别:Gender   年龄:Age

这里需要统计不同性别的员工数量

_db.Workers.GroupBy(x=>{Gender=x.Gender}).Select(x=>
new GenderNum(){
    Gender=x.Key.Gender,
    GenderNum=x.Count()
}).ToList();

如果需要按照性别+年龄进行统计(多字段统计

_db.Workers.GroupBy(x=>new {Gender=x.Gender, Age=x.Age}).Select(x=>
new MultiCount(){
    Gender=x.Key.Gender,
    Age=x.Key.Age,
    GenderNum=x.Count()
}).ToList();

GroupBy有个很好用的地方,就是检查列表是否有重复项

代码:if (list.GroupBy(x => x.Name).Where(x => x.Count() > 1).Count() > 0)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值