我已经阅读了有关TransactionScope和这篇文章的内容,但我仍然不明白 2 件事:
- 什么时候
SqlCommand.ExecuteNonQuery
执行它直到scope.Complete()
被调用才真正执行?如果是真的,那么在范围内执行的所有操作都保留在哪里等待scope.Complete()
或scope.Rollback()
? - 何时
TransactionScope
实例化它如何防止SqlCommand.ExecuteNonQuery
被执行并等待scope.Complete()
或scope.Rollback()
?它是否创建了一些“地方”并SqlCommand
以某种方式知道它并将说明放在那里?