Я пытаюсь реализовать функциональность транзакции.
Фрагмент кода:
using (TransactionScope transactionScope =
new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromMinutes(1)))
{
UpdateStuff1(); // ConnectionString1
throw new Exception();
UpdateStuff2(); // ConnectionString2
}
FROM MSDN :
вам следует вызовите этот метод только один раз, чтобы сообщить этому диспетчеру транзакций, что состояние всех ресурсов согласовано.
Невозможность вызова этого метода приводит к прерыванию транзакции.
проблема:
Диспетчер транзакций не откатывает изменения, сохраненные с использованием UpdateSuff1()
.
И даже если я не генерирую исключение, изменения все равно сохраняются в двух базах данных без вызова метода Complete.
Почему это так?
Я использую стандартный ado. net (SqlConnection, SqlCommand, et c.) В методах.