Как я могу обрабатывать подключения к различным базам данных в одной области транзакции - PullRequest
1 голос
/ 07 декабря 2010

Я пытаюсь получить доступ к данным из двух разных баз данных в области транзакций. Но при выполнении любого запроса ко второй базе данных я получаю «Операция недопустима для состояния транзакции». ошибка

using(TransactionScope scope=new TransactionScope())
{
     Insert();//Inserts to database A
     Select();//Selects from database B - error while executing this statement
}

Обе базы данных существуют на одном сервере.

1 Ответ

1 голос
/ 07 декабря 2010

Я думаю, что в SQL Server 2005 для всех компьютеров потребуется DTC (координатор распределенных транзакций).2 разных соединения приведут к переводу транзакции с локального на распределенное.

Очевидно, это исправлено в SQL Server 2008: TransactionScope автоматически переходит в MSDTC на некоторых компьютерах? Какая версияИспользуете ли вы SQL Server?

см. Класс ConnectionScope

Общие ошибки при использовании TransactionScope и MS DTC

...