我已经构建了我的项目,并将数据库连接命名为“VMaxEntities”
连接字符串存在于web.config中。
我有另一个连接字符串“Development_VMaxEntities”
每当我调用db时,我都使用代码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=************";
}
}
答案 0 :(得分:1)
我过去做过类似的事情
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);
}