Windows Сервис EFCore с DI, выдающим устаревшие данные - PullRequest
0 голосов
/ 10 апреля 2020

Я использую EFCore с. Net Core. EFCore отлично работает с WebApi, так как DbContext основан на объеме. В сервисе Windows мы используем тот же DbContext с DI и используем шаблон репозитория с единицей работы. Проблема в том, что иногда мы получаем устаревшие данные из EFCore из-за того же контекста, который используется из-за DI в течение Windows срока службы. Как мы можем справиться с этим с помощью DI и как создавать новый DBContext каждый раз, когда мы запускаем наш Windows процесс обслуживания?

1 Ответ

0 голосов
/ 13 апреля 2020

Решил проблему, создавая одноразовую область действия каждый раз.

private readonly IServiceProvider serviceProvider; using (var scope = serviceProvider.CreateScope ())

Теперь мой dbcontext инициализируется каждый раз, когда моя задача Window Service выполняется в планировщике и решается старая проблема с данными.

...