0

プロジェクトをビルドし、データベース接続に「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=************";
        }
    }
4

1 に答える 1

2

過去にこんなことをしたことがあります

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);
}
于 2014-03-13T17:22:18.980 に答える