【问题标题】:Windows Service EFCore with DI Giving Stale Data使用 DI 提供陈旧数据的 Windows 服务 EFCore
【发布时间】:2020-04-13 15:52:06
【问题描述】:

我将 EFCore 与 .Net Core 一起使用。 EFCore 与 WebApi 配合良好,因为 DbContext 是基于范围的。在 Windows 服务中,我们将相同的 DbContext 与 DI 一起使用,并将存储库模式与工作单元一起使用。问题是,有时我们会从 EFCore 获得陈旧的数据,因为在 Windows 服务生命周期中由于 DI 而使用了相同的上下文。我们如何使用 DI 来处理它,以及如何在每次运行我们的 Windows 服务进程时创建一个新的 DBContext?

【问题讨论】:

    标签: asp.net-core-2.1 ef-core-2.2


    【解决方案1】:

    通过每次创建一次性作用域来解决问题。

    私有的只读 IServiceProvider 服务提供者; 使用 (var scope = serviceProvider.CreateScope())

    现在,每当我的 Window Service 任务在调度程序中运行并且旧数据问题得到解决时,我的 dbcontext 都会被初始化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-10
      • 2016-10-11
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多