如何改变数据库连接编程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=************";
        }
    }

如何改变数据库连接编程c#实体框架

我以前做过类似的事情

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);
}