TransactionOptions tOpt = new TransactionOptions();
tOpt.Timeout = new TimeSpan(0, 15, 0);
using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required, tOpt))
{
action1();//存数据到表1
action2();存数据到表2
action3();存数据到表3
//表1,2,3都有db.SaveChanges();
//action 1,2,3为三个方法
transaction.Complete();
}
这个时候1,2 方法没有错,3方法错了,按理应该回滚啊。但是为什么1,2表里面的数据都存进去了啊?求解啊。。。。
------解决方案--------------------------------------------------------
//表1,2,3都有db.SaveChanges();
改为
action1()中的db.SaveChanges(false);
然后在
transaction.Complete();
db.AcceptAllChanges();
}