В Entity Framework метод SaveChanges () внутренне создает транзакцию и оборачивает все операции INSERT, UPDATE и DELETE под ней. Несколько вызовов SaveChanges () , создание отдельных транзакций, выполнение операций CRUD и затем принятие каждой транзакции
Ваш код выглядит хорошо, если в одной транзакции есть несколько SaveChanges .
Если у вас есть несколько SaveChanges в одной транзакции, тогда EF 6 и EF Core позволяют нам создавать или использовать одну транзакцию с несколькими вызовами SaveChanges (), используя следующие методы:
DbContext.Database.BeginTransaction () : создает новую транзакцию для базовой базы данных и позволяет зафиксировать или откатить изменения, внесенные в базу данных, с помощью нескольких вызовов метода SaveChanges.
DbContext.Database.UseTransaction () : позволяет передавать существующий объект транзакции, созданный вне области контекста.Это позволит EF выполнять команды внутри объекта внешней транзакции.Либо введите null, чтобы очистить знания платформы об этой транзакции.