0

Entity Framework を使用して Asp.net アプリケーションを開発しましたが、実行時にエンティティ接続文字列を変更する必要があります。次の方法を試しました。

public class DataLayer(){

static DataLayer()
{
((EntityConnection)_dbEntity.Connection).StoreConnection.ConnectionString =    GetConnectionString();

//GetConnectonString() returns "user id=xxxx;password=xxxx;database=xxxx;server=xxx.xxx.xx.xx"
}

static DBContext _dbEntity = new DBContext();
//other codes
}

また、以下のリンクも確認しましたが、変更できませんでした。

http://msdn.microsoft.com/en-us/library/bb738533(v=vs.90).aspx

http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/8a89a728-6c8d-4734-98cb-11b196ba11fd

4

2 に答える 2

2

既存のコンテキストの接続文字列は変更できません。DbContext実行時に接続文字列を制御する場合は、接続文字列をまたはObjectContextコンストラクターに渡す必要があります。

ところで。コメントで既に述べたように、ASP.NET では静的コンテキストを使用しないでください。静的コンテキストをまったく使用しないでください。静的コンテキストを続行すると、アプリケーションは正しく動作しません。

于 2012-07-16T08:15:31.510 に答える
0

最後に答えが得られました。このdbcontextをグリッドのエンティティデータソースに適用します。実行時にコンテキストを作成するため、修正されました。そのため、それを変更しました。

 protected void EntityDataSource1_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
    {
        var dp=new DBContext();
        e.Context = dp;
    }
于 2012-07-16T09:13:19.780 に答える