Entity framework SaveChanges方法是否有默认事务?

Entity framework SaveChanges方法是否有默认事务?,entity-framework,transactions,Entity Framework,Transactions,如果我对同一实体框架进行了多个操作DbContext(添加和更新) 只需调用一次SaveChanges,这些更改是否将作为事务完成 using (MyContext context = new MyContext()) { context.Table1.Add(entity1); context.Table2.Add(entity2); context.SaveChanges(); } 或者有可能只执行其中一个而不执行另一个吗?是的,它包装在事务中: 在实体框架的所有版

如果我对同一实体框架进行了多个操作
DbContext
(添加和更新) 只需调用一次
SaveChanges
,这些更改是否将作为事务完成

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

或者有可能只执行其中一个而不执行另一个吗?

是的,它包装在事务中:

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

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