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 ... 
随机推荐
- 数学工具 | 如何将图片公式快速输入到Word中?
			背景: 在日常科研.学习与工作中,我们可能需要使用到某些书籍.期刊或者规范上的公式,但是如果自己纯手打则会相当麻烦(数学系LaTeX高手请忽略),因此如果有工具能够解决这个问题,那真的是解决了一大痛点 ... 
- SQL Thinking
			s2下半年我在内部有一次部门级别的技术分享会,以本文内容分享为主. 其实有很多人问过我相同的问题,遇到需要改写的慢sql,不知道怎么改,改好了以后也不知道等不等价?不等价了也不知道错在哪?这个要怎么破 ... 
- [oeasy]python018_ 如何下载github仓库_git_clone_下载仓库
			继续运行 回忆上次内容 上次从 2行代码 进化到了 万行代码 命令 作用 yy 复制光标所在行代码 到剪贴板 p 粘贴 剪贴板中的内容 9999p 将剪贴板中的代码粘贴9999次 保存运行一条龙 :w ... 
- oeasy教您玩转vim - 5 - # 插入模式
			插入模式 回忆上节课内容 我们总结了,模式切换的方式 命令模式 Normal mode 底线命令行模式 Command mode 帮助文件的正确打开方式 :h 在文档中使用鼠标 set mouse=a ... 
- [rCore学习笔记 06]运行Lib-OS
			QEMU运行第一章代码 切换分支 git checkout ch1 detail git checkout ch1 命令是用来切换到名为 ch1 的分支或者恢复工作目录中的文件到 ch1 提交的状态 ... 
- TIER 1: Three
			TIER 1: Three 信息收集 通过以前的练习,我们首先确认目标 IP 开放了哪些端口,比如使用 nmap 之类的工具进行扫描.本次靶机开放: 22 端口:SSH, OpenSSH 80 端口: ... 
- 提高MQ可靠性
			提高可靠性通过以下四个方面: 生产者的可靠性(发送消息时丢失) 生产者发送消息时连接MQ失败 生产者发送消息到达MQ后未找到exchange 生产者发生消息到达MQ的exchange后,未找到合适的q ... 
- Fiddler使用界面介绍-右侧面板
			右侧面板是对左侧请求进行解析的面板,点击左侧的请求右侧面板就会出现分析数据 1.Statistics关于HTTP请求的性能 2.Inspectors请求内容,包含请求数据和响应数据 3. AutoRe ... 
- ByteHouse高性能向量检索实践——“以图搜图”
			更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着 LLM 技术的发展,向量检索与向量数据库也受到业界持续关注,它们能够为LLM提供外置记忆单元,通过提供与 ... 
- 【Tutorial C】02 快速入门
			在信息化.智能化的世界里,可能很早很早 我们就听过许多IT类的名词, C语言也在其中,我们侃侃而谈,到底C程序是什么样子? 让我们先看简单的一个例子: #include<stdio.h> ... 
