有一个答案
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.