Область транзакции - PullRequest
       23

Область транзакции

2 голосов
/ 08 ноября 2010

В моем приложении используется следующий шаблон:

using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required))
{
    Function1();
    Function2();
    Function3();
}

Моя проблема в том, что Function2 вызывает другую функцию, которая подключается к другой БД ... и транзакция становится распределенной, и я получаю исключение.

Есть ли способ в коде, в котором я могу сделать вызов БД, который не является частью текущей транзакции?Мой код в Function2 просто читает ... поэтому я не хочу участвовать в текущей транзакции.

Спасибо, Раду

1 Ответ

3 голосов
/ 08 ноября 2010

Вокруг function2 вы можете создать новую транзакцию с TransactionScopeOption.RequiresNew, тем самым превратив ее в отдельную транзакцию.Поскольку в этой транзакции будет использоваться только один ресурс (другая база данных), он не должен распространяться.

...