TransactionScope сохраняет данные даже без вызова метода Complete - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь реализовать функциональность транзакции.

Фрагмент кода:

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.) В методах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...