使用EntityFramework在运行时更改数据库类型

时间:2017-09-06 07:56:23

标签: mysql sql-server entity-framework

是否可以在运行时更改数据库类型?如果是的话,怎么做?我正在使用EntityFramework 6。

关于这个问题的背景: 我有一个最初没有数据库访问权限的应用程序。用户首先必须经历“安装”过程并提供有关数据库的信息(包括数据库类型,例如MySql或MsSql)。

如果可能,我想避免使用2个上下文。如有必要,我可以提供更多细节。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容在运行时指定连接字符串...

DbContext有一个构造函数,可以使用连接字符串的名称或连接字符串本身重载。

public partial class EntityName: DbContext {
    public EntityName(): base("name=EntityName") {}
    public EntityName(string connectionString): base(connectionString) {}
}

var connString = "PopulateConnString";
Using (var ctx = new EntityName(EntityConnectionStringBuilder)
{
   // Do stuff
}