Поддерживает ли ADO Entity Framework транзакции без DTC? Несколько запросов внутри одного EntityContext и одного TransactionScope вызывают продвижение DTC

У меня есть веб-приложение, которое использует Entity Framework - мы используем класс TransactionScope для обеспечения окружающих транзакций.

Есть ли способ сказать EF использовать стандартную транзакцию T-SQL вместо транзакции DTC? Довольно часто мы делаем несколько запросов к разным таблицам внутри одного EntityContext и одного экземпляра TransactionScope, однако, похоже, это всегда переводит транзакцию в DTC

Я собрал короткий пример, см. Ниже. Запрос к отдельной таблице правильно запускает транзакцию T-SQL и находится на соединении с SPID 54 Затем выполняется запрос к таблице ContactUs, и EF делает это на другом соединении (SPID 53), что влияет на продвижение транзакции. на транзакцию DTC. **

using (MyEntities DB = new MyEntities())
{
    using (TransactionScope t = new TransactionScope())
    {
        DB.Individual.First().EmailAddress = "bob" + DateTime.Now.Second.ToString() + "@bob.com"; // done on connection 54
        DB.ContactUs.First(); // done on connection 53 thus promoting the transaction!!
        DB.SaveChanges();
        t.Complete();
    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос