Работая с OData Web API, у меня работает пакетная обработка $, однако сохранение в базе данных не является транзакционным. Если я включаю несколько запросов в набор изменений в свой запрос и один из этих элементов выходит из строя, другой все еще выполняется, потому что каждый отдельный вызов контроллера имеет собственный DbContext.
например, если я отправлю пакет с двумя наборами изменений:
Пакет 1 - ChangeSet 1 - - Исправить действительный объект - - Патч недействительный объект - End Changeset 1 - ChangeSet 2 - - Вставить действительный объект - Завершить ChangeSet 2 Конечная партия
Я бы ожидал, что первый действительный патч будет откат, так как набор изменений не может быть завершен полностью, однако, поскольку каждый вызов получает свой собственный DbContext, первый патч зафиксирован, второй - нет, и вставка выполнена.
Существует ли стандартный способ поддержки транзакций через пакетный запрос с OData?