C# 如何使用Entity Framework 6在运行时选择数据库类型

C# 如何使用Entity Framework 6在运行时选择数据库类型,c#,entity-framework-6,C#,Entity Framework 6,我有一个应用程序,它使用EntityFramework6连接到SQLServer数据库。我们需要将其更改为同时使用PostgreSQL数据库。我要的是三个DbContext。一个始终连接到SQL Server,一个始终连接到PostgreSQL,一个根据配置设置更改其使用的数据库。我不知道如何建立这些连接。我们的代码将连接字符串直接传递到DBContext构造函数中 正在传递的连接字符串没有关于数据库类型的信息。是这样的: "Server=example;Database=MyDb;Truste

我有一个应用程序,它使用EntityFramework6连接到SQLServer数据库。我们需要将其更改为同时使用PostgreSQL数据库。我要的是三个DbContext。一个始终连接到SQL Server,一个始终连接到PostgreSQL,一个根据配置设置更改其使用的数据库。我不知道如何建立这些连接。我们的代码将连接字符串直接传递到DBContext构造函数中

正在传递的连接字符串没有关于数据库类型的信息。是这样的:

"Server=example;Database=MyDb;Trusted_Connection=True;"

您不只是将一个连接字符串传递给DbContext构造函数吗?EF对所有支持EF的提供商都是中立的。有一个EntityConnection。但它如何知道连接到哪种类型的数据库呢?当然,它需要知道使用哪个数据库提供程序,而不需要知道。连接字符串提供有关后端的信息,并且它所翻译的方言不是特定于后端的。@DavidG无法在运行时指定提供程序吗?我们有一个相当复杂的环境,当前的连接字符串来自机密管理器,而不是配置文件。这是因为安全团队不希望数据库密码以明文形式存在于磁盘上?