entity-framework-5 – 使用Entity Framework Code First进行交易

有一个答案
here来解释如何与Entity Framework进行交易

但是,该解决方案不能首先使用代码.

我已经进行了实验,我的测试表明以下工作正常

using (var scope = new TransactionScope())
{
        DBContext1.SaveChanges()
        If (ForceFailure) return 0  // used in testing
        DBContext2.SaveChanges()
        scope.Complete();
 }

但是我感到紧张,因为我不再将参数传递给SaveChanges或调用AcceptAllChanges

如何确定我是否可以信任我的解决方案?

最佳答案 SaveChanges(Boolean)是ObjectContext的一部分,而不是DbContext.请注意,不推荐使用ObjectContext中的方法SaveChanges(Boolean),而使用
SaveChanges(SaveOptions).

如果您仍想使用DbContext,您可以通过使用扩展方法重载其自己的SaveChanges方法以使用IObjectContextAdapter.ObjectContext.

点赞