【发布时间】:2018-02-20 06:20:37
【问题描述】:
我正在尝试找到一种方法来更改我的web.config 和我的上下文中的数据库名称。除了数据库名称之外,我的连接字符串中没有其他信息发生变化。
public APIContext(string dbname = "MyFirstDB") : base("OriginalContext")
{
this.Database.Connection.ConnectionString = this.Database.Connection.ConnectionString.Replace("MyFirstDB", dbname);
}
我能找到实现这一点的唯一方法是替换名称,但我可以看到未来很少有问题,例如如果我需要返回或需要指向另一个数据库。使用 mysql。
任何帮助将不胜感激。
** 编辑 **
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class APIContext : DbContext
{
public APIContext() : base("MyContext")
{
}
public void setDatabaseName(string name)
{
var currentdatabase = this.Database.Connection.Database;
this.Database.Connection.ConnectionString = this.Database.Connection.ConnectionString.Replace(currentdatabase, name);
}
如果我在调用上下文类之前调用“setDatabaseName(string name)”方法会起作用吗?
我只是对应该在哪里替换数据库名称以及如何替换感到困惑。
【问题讨论】:
-
这行得通你为什么不试试看它是否行得通?我的意思是先尝试然后在这里询问并等待答案会更快。为什么不能只更改配置文件中连接字符串中的数据库名称:
Database=whateverDb? -
我试过这个耀西。我感到困惑的是如何设置它以及我需要在连接字符串中更改数据库名称的地方。在我访问了我的初始数据库后,我得到了一个数据库名称,并想切换到该数据库。我不知道该怎么做。
-
正是我想要的。谢谢耀西。
标签: c# mysql entity-framework connection-string