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