Я переписываю весь этот вопрос, потому что я понимаю причину, но все равно нуждаюсь в решении:
У меня есть повторяющаяся работа в Hangfire, которая работает каждую минуту и проверяет базу данных, возможно, обновляет некоторые вещи, а затем выходит.
Я ввожу свой dbcontext в класс, содержащий метод задания. Я регистрирую этот dbcontext, чтобы получить инъекцию, используя следующие
builder.RegisterType<ApplicationDbContext>().As<ApplicationDbContext>().InstancePerLifetimeScope();
Однако кажется, что Hangfire не создает отдельную область жизни каждый раз, когда выполняется задание, потому что конструктор получает только один раз, хотя метод задания вызывается каждую минуту.
Это вызывает проблемы для меня. Если пользователь обновляет некоторые значения в базе данных (dbcontext получает инъекцию в другом месте и используется для обновления значений), контекст, который все еще используется, Hangfire начинает возвращать устаревшие значения, которые уже были изменены.