有一个答案here来解释如何与Entity Framework进行交易 但是,该解决方案不能首先使用代码。 我已经进行了实验,我的测试表明以下工作
using (var scope = new TransactionScope())
{
DBContext1.SaveChanges()
If (ForceFailure) return 0 // used in testing
DBContext2.SaveChanges()
scope.Complete();
}
但是我感到紧张,因为我不再将参数传递给SaveChanges或调用AcceptAllChanges
如何确定我是否可以信任我的解决方案?
答案 0 :(得分:2)
SaveChanges(Boolean)
是ObjectContext
的一部分,而不是DbContext
。请注意,SaveChanges(Boolean)
中的方法ObjectContext
已弃用,而不是SaveChanges(SaveOptions)
。
如果您仍想使用DbContext
,则可以通过使用扩展方法重载其自己的SaveChanges
方法以使用IObjectContextAdapter.ObjectContext。