Мы внедряем EnableRetryOnFailure
, но, как обсуждалось на https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency, это не работает "из коробки" для пользовательских транзакций.
Одна из рекомендаций по вышеуказанной ссылке (варианты 3 и 4) - использовать ExecutionStrategy.ExecuteInTransaction
и вызывать SaveChanges
с acceptAllChangesOnSuccess: false
.
Это необходимо для того, чтобы транзакция могла быть повторена, если SaveChanges завершился успешно, но транзакция не удалась.
Проблема, с которой мы сталкиваемся, заключается в том, что у нас есть UserManager
методы, обернутые внутри наших транзакций, и они будут внутренне вызывать SaveChanges
в контексте.
Как мы можем это сделать, когда мы не можем изменить UserManager
на acceptAllChangesOnSuccess: false
?