在运行时设置Entity Framework 6提供程序以进行代码优先设置

时间:2018-08-16 16:32:20

标签: c# entity-framework-6

我有一个使用代码优先模式的多租户,Entity Framework 6,ASP.NET网站。

当前已将该站点设置为使用SQL Server,并且在运行时从机密存储中加载了连接字符串。我们正在迁移它以使用Postgres,但是在一段时间里我们需要支持两个数据库。我添加了EntityFramework6.Npgsql矿块包。

我尝试如下设置连接字符串,但这给我一个错误。如何在运行时正确设置提供程序?

我的代码如下:

var builder = new EntityConnectionStringBuilder
{
    ProviderConnectionString =
        config.UsePostgreSql ?
            config.PostgreSqlConnectionstring :
            config.SqlServerConnectionString,

    Provider =
        config.UsePostgreSql  ?
            "Npgsql" :
            "System.Data.SqlClient"
};

return
    new MyDbContext(builder.ConnectionString);

我得到的错误是:

  

不支持关键字:“提供商”。

0 个答案:

没有答案