ABP .NET6 升级 EF Core 7 使用ExecuteUpdate实现批量更新并监测生成的SQL
记录一个简单的使用EFCore7批量更新的例子
EF7 面向 .NET 6,因此可与 .NET 6 (LTS) 或 .NET 7 一起使用。
详见:官方文档
先更新如下包
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 7.0.0
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 7.0.0
Install-Package Microsoft.EntityFrameworkCore.Design -Version 7.0.0
在Controller中添加引用
using Microsoft.EntityFrameworkCore;
方法体代码
//更新所有实体的CreationTime为当前时间
_roleRepository.GetAll()
//.Where(entity => entity.Id > 0)编写where语句
.ExecuteUpdate(update => update.SetProperty(entity => entity.CreationTime, DateTime.Now));
执行前的数据
执行后的数据
可以看到2条数据的CreationTime都被修改成了相同的值
看一下生成的SQL日志
更新了2条数据,只生成了1条update语句。
如果是EFCore7之前的版本更新n条数据时,会生成1条查询语句和n条update语句。
这说明EFCore7的批量更新性能更好了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了