如何改变数据库连接编程c#实体框架
本文关键字:编程 实体 框架 数据库连接 何改变 改变 | 更新日期: 2023-09-27 17:50:00
我已经建立了我的项目,并将数据库连接命名为"VMaxEntities"
web.config中存在连接字符串。
我有另一个连接字符串"Development_VMaxEntities"
当我调用数据库时,我使用代码using (VMaxEntities db = new VMaxEntities())
调用:
public partial class VMaxEntities : DbContext
{
public VMaxEntities()
: base("name=VMaxEntities")
{
}
我想做的是连接到一个开发数据库,而不是活的一个,如果当前的URI包含localhost。
所以-感谢下面的cgotberg的回答,这是我用来让它工作的方法:(注意,我在这里添加密码,而不是在web.config中)
public VMaxEntities()
: base("name=Secure_VMaxEntities")
{
if (System.Web.HttpContext.Current.Request.Url.Host == "localhost")
{
var connectionString = this.Database.Connection.ConnectionString + ";password=***********";
this.Database.Connection.ConnectionString = connectionString.Replace("catalog=VMax", "catalog=DEV_VMax");
}
else
{
this.Database.Connection.ConnectionString += ";password=************";
}
}
我以前做过类似的事情
using(var db = new VMaxEntities())
{
var connectionString = context.Database.Connection.ConnectionString;
var datasource = context.Database.Connection.DataSource;
var databaseServer = "yourDevDatabaseServerName"
db.Database.Connection.ConnectionString = connectionString.Replace(datasource, databaseServer);
}