Я, вероятно, не думаю в правильном направлении. Я новичок в Injection Dependency и ASP.Net Core.
У меня есть основной веб-сайт ASP.Net, и одной из задач является импорт данных из листа excel в базу данных, которую пользователь будет загружать. Листы Excel могут быть огромными, а задачи преобразования данных - это время, поэтому я хочу выполнить их в фоновом режиме. т.е. пользователь загрузит лист, ответ будет отправлен немедленно, а фоновое задание/поток импортирует данные.
Я пытаюсь запустить фоновое задание:
Task.Run(() => ProcessImport(model));
Проблема, с которой я сталкиваюсь, заключается в том, что метод импорта процессов вызывает службы, имеющие классы репозитория, которые получают доступ к AppDbContext через контейнер для инъекций зависимостей ASP.Net, который добавляется как область действия, и как только ответ отправляется обратно, контекст удаляется. Я получаю исключение во время выполнения, которое вы не можете использовать контекст после его расположения.
Мой вопрос: каков наилучший способ справиться с этой ситуацией? Должен ли я сделать одноэлементное приложение AppDbContext? Должен ли я создать новый экземпляр AppDbContext в методе ProcessImport и передать его? Я читал, что DbContext не является потокобезопасным, так что это хороший подход?