假设我有一个域对象,它与其他几个实体(当前映射到多个表)有关联。我在主要和相关实体上进行了更改。当然EF必须在保存时在多个表中更新它。
无论是ObjectContext还是DbContext,对SaveChanges()方法的调用都会告诉Entity Framework“将在此上下文中所做的所有更改保存到底层数据库。”
有人能告诉我“SaveChanges()背后发生了什么”?
是否所有生成的sql语句INSERT / UPDATE / DELETE都作为预处理语句一次性进入数据库?
或者EF是否与DB一起来回执行sql语句?
EF中是否有任何配置可在此间切换?
答案 0 :(得分:1)
目前,CUD操作的语句不是批处理的。我们有一个work item来解决这个问题。随意upvote
答案 1 :(得分:0)
根据我的理解,每个修改后的实体将导致数据库的往返(全部由单个事务绑定)。虽然我不知道任何会改变这种行为的配置,但我不会说没有EF实现可以实现这种“批处理”功能。我只是认为它们没有开箱即用。