Entity Framew(EF core 3)中group By 解决

本文探讨了EF Core 3.0中LINQ查询的更改,特别是当查询无法转换为SQL时抛出的ClientsideGroupByisnotsupported.异常。提供了两种解决方案:使用AsEnumerable()或ToList()将数据加载到内存中,或者先选择并去重目标列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:自EF core 3开始,如果LINQ查询命令无法转换成SQL语句,则系统将抛出异常 System.InvalidOperationException, "Client side GroupBy is not supported."

链接:https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#linq-queries-are-no-longer-evaluated-on-the-client

解决:1、GroupBy()前使用AsEnumerable()ToList()

2、将数据取回后再执行group by

我的方式:先Select目标列再加Distinct语句

var res = _context.device_ip.GroupBy()//不完整 仅做示意
//运行报错System.InvalidOperationException, "Client side GroupBy is not supported."

//解决:

var res = _context.device_ip.Select(c => new
            {
                c.ip_A,
                c.ip_B,
                c.ip_C
            }).Distinct();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值