3

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

无论是 ObjectContext 还是 DbContext,对 SaveChanges() 方法的调用都会告诉 Entity Framework “将在此上下文中所做的所有更改保存到底层数据库”。

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

所有生成的 sql 语句 INSERT/UPDATE/DELETE 是否作为准备好的语句一次性进入数据库?

还是EF与DB来回做sql语句一一执行?

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

4

2 回答 2

2

目前 CUD 操作的语句没有批处理。我们有一个工作项来解决这个问题。随意点赞

于 2013-04-10T18:58:28.440 回答
0

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

于 2013-04-10T13:34:59.067 回答