EF Core – ExecuteUpdate and ExecuteDelete (Bulk updates 批量更新和删除)
前言
EF Core 在 SaveChanges 之后会一句一句的去更新和删除数据. 有时候这个效率是很差的.
而 SQL 本来就支持批量更新和删除, 所以是 EF Core 的缺失. 在 EF Core 7.0 它补上了这个功能.
ExecuteDelete
await db.Customers.Where(e => e.Name.Length > 1).ExecuteDeleteAsync();
语法很简单, filter 出要删除的数据, 然后执行 ExecuteDeleteAsync, 它是直接执行的, 不需要 SaveChanges
SQL Query
当遇到 Owned Entity 有 Error
不知道是不是 Bug. 等过了 RC 版本再试试呗
.ExecuteDelete()' could not be translated. Additional information: The operation 'ExecuteDelete' requires an entity type which corresponds to the database table to be modified. The current operation is being applied on a non-entity projection.
ExecuteUpdate
await db.Customers
.Where(e => e.Name == "Derrick")
.ExecuteUpdateAsync(s =>
s.SetProperty(e => e.Name, e => "prefix" + e.Name)
.SetProperty(e => e.Age, e => e.Age + 1)
);
首先是 filter 出要 update 的 data. 然后调用 ExecuteUpdateAsync, 指定更新的 column 和最终的值, 要同时 update 多个 column 就多次调用 SetProperty.
设置值的时候还可以依赖其它 column value 哦.
SQL Query
当遇到 Owned Entity 也是会有 Error 哦.
EF Core – ExecuteUpdate and ExecuteDelete (Bulk updates 批量更新和删除)的更多相关文章
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
原文链接:http://blog.csdn.net/fanbin168/article/details/51485969 批量插入 (17597条数据批量插入耗时1.7秒) using Sys ...
- 【转】Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended 也可以在nuget上直接安装这个包,它的说明有点过时了,最新版本已经改用对I ...
- (转)Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
转自:http://www.cnblogs.com/jinzhao/archive/2013/05/31/3108755.html 今天乍一看,园子里居然没有关于这个类库的文章,实在是意外毕竟已经有很 ...
- ef和mysql使用(二)--让mysql支持EntityFramework.Extended实现批量更新和删除
我们都知道Entity Framework 中不能同时更新多条记录,但是一个老外写的扩展库可以实现此功能EntityFramework.Extended,但是如何是mysql数据库要怎么实现呢 首先实 ...
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended 也可以在nuget上直接安装这个包 1.先更新VS的NuGet版本http: ...
- 在 EF Core 中 Book 实体在新增、修改、删除时,给 LastUpdated 字段赋值。
直接贴代码: public class MenusContext : DbContext { public static class ColumnNames { public const string ...
- hibernate批量更新和删除数据
批量处理 不建议用Hibernate,它的insert效率实在不搞,不过最新版本的Hibernate似乎已经在批量处理的时候做过优化了,设置一些参数如batch_size,不过性能我没有测试过,听说 ...
- MySQL 批量更新、删除数据shell脚本
#!/bin/bash. ~/.bash_profilelog=/tmp/update_log_1_$(date +%F).logvstart=1step=100vstop=$((${vstart}+ ...
- 如何使用 EF Core 7 批量删除数据
在 EF Core 7 中,我们可以使用批量操作来删除多条数据.这种方式与之前的版本有所不同,本文将对比 EFCore 7 和之前版本批量删除数据的不同方式. 删除给定 ID 的数据 在 EF Cor ...
- .Net EF Core千万级数据实践
.Net 开发中操作数据库EF一直是我的首选,工作和学习也一直在使用.EF一定程度的提高了开发速度,开发人员专注业务,不用编写sql.方便的同时也产生了一直被人诟病的一个问题性能低下. EF Core ...
随机推荐
- 如何平稳地从nacos迁移到r-nacos?
1. 引言 很多同学了解r-nacos特性后最开始只将r-nacos用于开发测试环境. 经过一段时间的使用后,部分同学有打算生成环境也从nacos迁移到r-nacos. 一些之前使用nacos服务的同 ...
- ABC362
A link 判断即可... 点击查看代码 #include<bits/stdc++.h> using namespace std; int r,g,b; string c; signed ...
- PKUWC2024游记
PKUWC2024 游记 day -???? 得知今年冬令营在育才,非常高兴不用出远门了. day 1 当天上午 7:00 起来,然后做车去报道,非常堵车.感觉育才环境挺好的,~不像某人在读学校一样. ...
- python json.loads()字符串转json
python json.loads()字符串转json import jsonimport requestsres = '''{"code":200,"message& ...
- Selenium 8个定位元素
selenium 8个定位元素为:id.name.xpath.link_text.class_name.tag_name.css_selector.partial_link_text 1.id元素 浏 ...
- 对比python学julia(第四章:人工智能)--(第一节)OpenCV编程初步(3)
1.4. 人脸检测 (续上) 3.检测视频中的人脸 在VSCode环境中,新建一个空白源文件,以detect_video.jl作为文件名保存到项目文件夹中,然后编写程序检测视频流中的人脸(正脸).由 ...
- 【MySQL】查询是否连续5次失败
场所房间表 场所编号和房间号联合唯一, 一对多关系 场所编号关联商家ID,一对一关系 CREATE TABLE `aisw_room` ( `ID` int(11) NOT NULL AUTO_INC ...
- 【SpringBoot】05 探索配置方式 Part1 指定和导入配置的注解
@PropertySource & @ImportResource @ConfigurationProperties默认从全局配置文件中读取 我们可以拆解出来分成单独的配置文件 [提取Bean ...
- 【JDBC】Extra02 SqlServer-JDBC
官网驱动获取地址: https://www.microsoft.com/zh-cn/download/details.aspx Maven仓库获取: https://mvnrepository.com ...
- ComfyUI插件:ComfyUI layer style 节点(三)
前言: 学习ComfyUI是一场持久战,而ComfyUI layer style 是一组专为图片设计制作且集成了Photoshop功能的强大节点.该节点几乎将PhotoShop的全部功能迁移到Comf ...