如何在 Autofac json 配置文件中配置 DbContext

问题描述

ENV:VS 2019,C# .NET Framework 4.6.1

我正在使用 .json 文件来保存我的所有配置:

IConfigurationBuilder config = new ConfigurationBuilder();
        config.AddJsonFile("autofac.json");

我的问题是,如何在此文件中包含 DbContext?我将 Autofac 添加到现有应用程序并在新部分中使用它。原代码中的代码是这样的(将真名改为“我的*”以保护无辜):

public partial class MyDbContext : DbContext,Idisposable
{
    public MyDbContext () : base("MyDB")
    {}

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {}
}

是否可以将 DbContext 具体类与现有接口相关联(是否存在),或者我应该围绕它创建一个包装器,然后为包装器类创建相应的接口?

解决方法

典型的做法是将连接信息(例如连接字符串)放入配置文件,而不是服务类的 JSON 表示,例如 DbContext)。

然后您可以注入具体的上下文(或者,better,一个创建 MyDbContextIDbContextFactory

在配置文件中提供非配置的东西(例如存储库、服务类、EF 资源等)很快就会变得非常有问题,只管坚持配置。