Можем ли мы определить распределенную транзакцию с помощью Database.BeginTransaction?

Я искал способы создания транзакции в Entity Framework и знаю, что мы можем создать распределенную транзакцию с TransactionScope в EF5, как указано здесь. Использование транзакций или SaveChanges(false) и AcceptAllChanges()? Я хочу знать, можем ли мы создать распределенную транзакцию с помощью Database.BeginTransaction? заранее спасибо.


person butterfly    schedule 22.02.2015    source источник
comment
Ссылка не обязательно включает распределенные транзакции. DT находятся на сетевых узлах. Это то, на что вы ссылаетесь? AFAIK a DbTransaction (который запускается Database.BeginTransaction) никогда не может перейти в DTC.   -  person Gert Arnold    schedule 22.02.2015


Ответы (1)


Database.BeginTransaction всегда будет запускать локальную транзакцию в базе данных, а не распределенную транзакцию.

Создание нового TransactionScope начнется с транзакции локальной базы данных, но при необходимости она автоматически обновится до распределенной транзакции. То есть: если вы работаете с базой данных SQL Server. При использовании других баз данных создание TransactionScope приведет к созданию распределенной транзакции. Это потому, что только SQL Server поддерживает продвижение транзакций...

person Marc Selis    schedule 22.09.2015