多个TransactionScopes在不同的类C#中

时间:2017-07-06 15:19:17

标签: c# rollback transactionscope

美好的一天, 我有一个方法,在不同的类中包含几个数据库提交(大约15个),我需要一种方法只在方法没有抛出任何异常时才进行所有数据库更改,我正在考虑使用事务范围,而我的问题是天气我可以在所有不同的类中使用该事务范围的单个实例,如果不是,在异常情况下执行回滚的最佳做法是什么? 谢谢!

1 个答案:

答案 0 :(得分:4)

您通常不需要显式执行回滚,执行数据库操作的方法可能甚至不知道环境事务(即 - 您不需要将TransactionScope传递给它们) 。只是做:

using (var tran = new TransactionScope()) {
    FirstDatabaseOperation();
    SecondDatabaseOperation();
    // etc
    tran.Complete();
}

如果在任何操作中发生异常 - 将为您回滚事务,因为TransactionScope将被处理。