Я читал о TransactionScope и эту статью, но я все еще не понимаю двух вещей:
- Когда
SqlCommand.ExecuteNonQuery
выполняется, он на самом деле не выполняется до тех пор, пока не будет вызванscope.Complete()
? Если это правда, то где все операции, которые были выполнены в рамках области, остаются и ждутscope.Complete()
илиscope.Rollback()
? - Когда создается экземпляр
TransactionScope
, как он предотвращает выполнениеSqlCommand.ExecuteNonQuery
и ожиданиеscope.Complete()
илиscope.Rollback()
? Создает ли он какое-то "место" иSqlCommand
как-то знает об этом и помещает туда инструкции?