EF SaveChanges()背后发生了什么?

本文关键字:发生了 什么 背后 SaveChanges EF | 更新日期: 2023-09-27 18:08:40

假设我有一个域对象,它与其他几个实体(当然映射到多个表)有关联。我对主实体和相关实体进行了更改。当然,EF必须在保存时在多个表中更新此值。

无论是ObjectContext还是DbContext,调用SaveChanges()方法将告诉实体框架"保存在此上下文中所做的所有更改到底层数据库"。

谁能告诉我"SaveChanges()背后发生了什么"?

是所有结果sql语句INSERT/UPDATE/DELETE去数据库在一次准备语句?

或者EF正在与DB来回执行sql语句一个接一个?

在EF中是否有任何配置可以在此之间切换?

EF SaveChanges()背后发生了什么?

目前用于CUD操作的语句还没有批处理。我们有一个工作项目来解决这个问题。欢迎留言

据我所知,每个修改的实体将导致到数据库的往返(所有都由单个事务绑定)。虽然我不知道任何配置会改变这种行为,但我不会说没有EF实现实现这种"批处理"功能。我只是不认为他们是可用的,开箱即用。