Используя Entity Framework (сначала код в моем случае), у меня есть операция, которая требует от меня вызова SaveChanges для обновления одного объекта в БД, а затем SaveChanges снова для обновления другого объекта. (Мне нужно сначала SaveChanges, чтобы решить проблему, когда EF не может определить, какой объект для обновления сначала).
Я пробовал делать:
using (var transaction = new TransactionScope())
{
// Do something
db.SaveChanges();
// Do something else
db.SaveChanges();
tramsaction.Complete();
}
Когда я запустил это, я получаю исключение во втором вызове SaveChanges
, говоря, что "базовый поставщик отказался при открытии". Внутреннее исключение говорит о том, что MSDTC не включен на моей машине.
Теперь я видел сообщения в другом месте, которые описывают, как включить MSDTC, но мне кажется, что мне также необходимо включить доступ к сети и т.д. Это звучит как полный перебор, потому что других баз данных не задействовано, не говоря уже о другие серверы. Я не хочу делать что-то, что сделает мое приложение менее безопасным (или медленнее).
Конечно, должен быть более легкий способ сделать это (в идеале без MSDTC)?