Вторая операция была запущена в этом экземпляре контекста до завершения предыдущей операции. при использовании интерфейсC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Вторая операция была запущена в этом экземпляре контекста до завершения предыдущей операции. при использовании интерфейс

Сообщение Anonymous »

В Program.cs

Код: Выделить всё

builder.Services.AddDbContextFactory(o => o.UseSqlServer(builder.Configuration.GetConnectionString("Usdaw")), ServiceLifetime.Transient);
builder.Services.AddTransient();
Оболочка репозитория:

Код: Выделить всё

 private RepositoryContext _repo;

public RepositoryContext RepositoryContext
{
get
{
return _repo;
}
}
Конструктор для RepositoryWrapper

Код: Выделить всё

public RepositoryWrapper(IConfiguration config, RepositoryContext repo1, RepositoryContext repo2, RepositoryContext repo3)
{
_repo1 = repo1;
_repo2 = repo2;
_repo3 = repo3;
}
Контекст репозитория

Код: Выделить всё

 public partial class RepositoryContext : DbContext
{
public RepositoryContext()
{
}

public ERepositoryContext(DbContextOptions options)
: base(options)
{
}

public virtual DbSet ActivityLogs { get; set; } = null!;
Эта строка генерирует исключение:

Код: Выделить всё

var dbSession = await _wrapper.RepositoryContext.ActivityLogs.Where(s => s.SessionID == Guid.Parse(HttpContext.Session.Id)).FirstOrDefaultAsync();
Я получаю ужасное сообщение:

Имя: InvalidOperationException Сообщение: Вторая операция была
начата этот экземпляр контекста до завершения
предыдущей операции. Обычно это вызвано тем, что разные потоки одновременно
используют один и тот же экземпляр DbContext. Дополнительную информацию о том, как
избежать проблем с потоками с помощью DbContext, см. на странице
https://go.microsoft.com/fwlink/?linkid=2097913.

Я перешел по ссылке, но, насколько я понимаю, я использую временную реализацию.
https://learn.microsoft.com/en-us/ef/co ... ing-issues
Я использую . NET8.0 и Entity Framework версии 8.0.4
Я подозреваю, что это может быть реализация репозиторияWrapper, и интересно, есть ли у кого-нибудь элегантное решение?
Хостинг Blazor на IIS 10, используя Net8.
Еще одна мысль: это прерывисто, и интересно, может ли это быть связано с тем, что IIS перезапускает пул приложений?
Изображение


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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