使用Entity Framework Code First进行交易

时间:2013-02-18 20:32:22

标签: entity-framework-5 transactionscope

有一个答案here来解释如何与Entity Framework进行交易 但是,该解决方案不能首先使用代码。 我已经进行了实验,我的测试表明以下工作

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

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

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

1 个答案:

答案 0 :(得分:2)

SaveChanges(Boolean)ObjectContext的一部分,而不是DbContext。请注意,SaveChanges(Boolean)中的方法ObjectContext已弃用,而不是SaveChanges(SaveOptions)

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