Альтернатива TransactionScope для Entity Framework при использовании Sql Azure для нескольких соединений
Я использую EF для доступа к Sql Azure. В одной ситуации мне нужно внести изменения в две базы данных, для которых обычно я использую TransactionScope, и он переходит в MSDTC. Теперь MSDTC не поддерживается в Sql Azure, поэтому я не могу использовать TransactionScope.
Есть ли другой способ сделать это? (кроме выполнения без распределенной транзакции и необходимости вручную откатывать состояние).
2 ответа
Одним из способов написания кода без использования класса TransactionScope является использование SqlTransaction. Класс SqlTransaction не использует диспетчер транзакций, он заключает команды в локальную транзакцию, которая фиксируется при вызове метода Commit().
Я бы посоветовал вам взглянуть на статью Обработка транзакций в SQL Azure.
TransactionScope теперь поддерживается для базы данных SQL Azure. Смотрите мой ответ на следующую публикацию: TransactionScope () в Sql Azure. Это также относится, когда вы используете EF.