Альтернатива 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.

Другие вопросы по тегам