使用TransactionScope时,如果内部执行的代码回滚了事务,那么父事务也会回滚,这对我来说是好的。但是,当处理该范围时,它会抛出异常,意味着事务已经被回滚并中止了。那么正确的处理方式是什么,如何正确地处理该范围?
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
using (var conn = GetConnection())
{
string query =
@"some query that may contain transaction itself
or some SP whith transaction included"
using (var command = new SqlCommand(query, conn))
command.ExecuteNonQuery();
}
}
scope.Complete();
} // Exception here