Использование TransactionScope для нескольких DbContexts и добавление механизма повтораC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Использование TransactionScope для нескольких DbContexts и добавление механизма повтора

Сообщение Anonymous »

При использовании базы данных SQL Azure в серверной части .Net у меня возникла проблема с повторной попыткой транзакций, включающих несколько контекстов.
Я делаю несколько обновлений для разных баз данных, но требование что все транзакции SQL должны либо успешно фиксироваться, либо завершаться неудачей.
В обоих контекстах я реализовал механизм повтора по умолчанию в файле запуска.
services.AddDbContext(options => options
.UseSqlServer("Name=database1", sqlServerOptions =>
.EnableRetryOnFailure()));
services.AddDbContext(options => options
.UseSqlServer("Name=database2", sqlServerOptions =>
.EnableRetryOnFailure()));

Но, поскольку транзакции, инициированные пользователем, не повторяются, как мне убедиться, что они повторяются правильно при возникновении каких-либо проблем?
Это сообщение об ошибке, которое я получаю, когда происходит какой-либо временный сбой.
Настроенная стратегия выполнения «SqlServerRetryingExecutionStrategy» не поддерживает транзакции, инициированные пользователем. Используйте стратегию выполнения, возвращаемую функцией «DbContext.Database.CreateExecutionStrategy()», чтобы выполнить все операции в транзакции как повторяемую единицу.
Итак, я необходимо убедиться, что следующая область повторяется правильно.
using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
// these methods don't call the dB contexts directly
// call the method that makes the updates using the dbcontext1 in database1

// call the method that does the updates using the dbcontext2 in database2

scope.complete();
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... -mechanism
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Использование TransactionScope для нескольких DbContexts и добавление механизма повтора
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Использование TransactionScope для нескольких DbContexts и добавление механизма повтора
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Использование нескольких EF Core DbContexts в одном приложении в чистой архитектуре
    Anonymous » » в форуме C#
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как объединить таблицы из нескольких dbcontexts в одну ViewModel?
    Гость » » в форуме C#
    0 Ответы
    45 Просмотры
    Последнее сообщение Гость
  • Entity Framework Core с использованием нескольких DbContexts
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»