在运行时更改EF Core上下文的连接字符串

时间:2017-03-02 09:36:42

标签: c# entity-framework asp.net-core entity-framework-core

过去可以在创建后更改上下文的连接字符串

我无法弄清楚如何使用EF Core(和SQLite)来做到这一点。我正在使用ASP.NET Core内置IoC容器以通常的方式注册上下文。

services.AddDbContext<MyContext>(options =>
  options.UseSqlite(cfg.GetConnectionString("DefaultConnection")));

我无法更改MyContext类,因为它位于另一个由其他人负责的程序集中。所以我无法更改构造函数OnConfiguring()等等。

所以我需要使用新的连接字符串重新创建/初始化容器的当前实例。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:-2)

当然,哟可以在ConfigurationBuilder

Startup进行
    var builder = new ConfigurationBuilder()
                    .SetBasePath(env.ContentRootPath)
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
    Configuration = builder.Build();

然后在您的上下文中使用它。如果ConfigurationBuilder {/ 1}}将在更改

时重新加载