代码之家  ›  专栏  ›  技术社区  ›  Abhijeet

如何为每个类注入DbContext的新实例?

  •  -1
  • Abhijeet  · 技术社区  · 6 年前

    将Ef Core db context配置为每个类(而不是每个调用)的单独实例,是否可行?我找不到任何过载来实现这一点。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<MyDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("Default")).EnableSensitiveDataLogging());
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Steven    6 年前

    下面的代码将确保每次调用IDBContext对象时都注入一个新实例。我们需要创建一个类(repository类),它接受IDBContext作为构造函数参数,这样每次调用这个类时,运行时都会注入一个新实例。

    services.AddDbContext<MyDbContext>(
        options => options.UseSqlServer("<connection string>"),
        ServiceLifetime.Transient);