我有两个 DbContext
,我在一个表单中同时调用它们,如下所示:
dbcontext1.add(object);
dbcontext1.save();
dbcontext2.add(object);
dbcontext2.save();
所以我有一个问题:如果出现一些问题,我的记录由
DbContext1
保存但不在DbContext2
中,我需要回滚事务。我搜索了一下,发现有两种方法:使用
BeginTransaction
和TransactionScope
。我对该使用哪个方法以及它们之间的区别感到困惑?我发现像这样的东西,但我不知道如何回滚它:
using (TransactionScope scope = new TransactionScope())
{
using (EFEntities1 dc = new EFEntities1())
{
dc.USERS.Add(user);
dc.SaveChanges();
}
using (EFEntities2 dc = new EFEntities2())
{
dc.USERS.Add(user);
dc.SaveChanges();
}
scope.complete();
}
最好的问候