【问题标题】:Is there a default transaction for the SaveChanges method?SaveChanges 方法是否有默认事务?
【发布时间】:2018-12-06 14:51:16
【问题描述】:

如果我使用同一个实体框架DbContext 进行了多次操作(添加和更新) 只需致电SaveChanges,这些更改是否会作为交易完成?

using (MyContext context = new MyContext())
{
    context.Table1.Add(entity1);
    context.Table2.Add(entity2);
    context.SaveChanges();
}

或者是否有机会只执行其中一个而不执行另一个?

【问题讨论】:

    标签: entity-framework transactions


    【解决方案1】:

    是的,它包含在交易中:

    在所有版本的 Entity Framework 中,无论何时执行 SaveChanges() 在数据库上插入、更新或删除 框架将该操作包装在事务中。本次交易 只持续足够长的时间来执行操作然后完成。 当您执行另一个此类操作时,将启动一个新事务。

    https://docs.microsoft.com/en-us/ef/ef6/saving/transactions

    您不能进行任何部分保存,否则您的 DbContext 可能会进入不一致的状态。每次更改操作后,您只能多次调用SaveChanges。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-20
      • 2022-12-07
      • 2015-08-21
      • 2021-11-16
      • 1970-01-01
      相关资源
      最近更新 更多