【问题标题】:Structuremap - dependency injection - EF Core DBContext lifetime per requestStructuremap - 依赖注入 - 每个请求的 EF Core DBContext 生命周期
【发布时间】:2018-06-19 11:06:38
【问题描述】:

有没有人“正确”地使用 Structuremap 设置 EF Core DBContext(什么是正确的?)

DBContext 在请求的整个生命周期中必须是单例。

我了解默认生命周期是瞬态。我知道这将获得一个嵌套容器,这实际上意味着在 web api / mvc 下运行时“每个请求”? (see this)

但是,看看这段代码,dbcontext 不是会成为 Application Lifetime 单例吗?

public class DistributedTaskRegistry : Registry
{
    public DistributedTaskRegistry()
    {
        For<DistributedTaskDbContext>().Use(() => new DistributedTaskDbContextFactory().CreateDbContext(null));
        For<IDistributedTaskRepository>().Use<DistributedTaskRepository>();
    }
}

注意这是使用 EF Core 的“旧版”.Net Framework 4.7 Web Api

编辑HttpContextScoped怎么了?

【问题讨论】:

    标签: asp.net-web-api dependency-injection entity-framework-core structuremap


    【解决方案1】:

    已确认:默认生命周期是transientStructureMap 表示每个请求的生命周期

    如果您想要一个应用程序生命周期单例,您需要指定它。

    For<IDistributedTaskRepository>().Use<DistributedTaskRepository>().Singleton();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2017-09-08
      • 2021-02-07
      • 2017-06-04
      • 2020-09-09
      • 2021-10-23
      • 1970-01-01
      相关资源
      最近更新 更多