実行時に LINQ データベース接続を変更できるように、カスタム構成画面を作成したいと考えています。ソフトウェアを再起動する必要がある app.config を変更する以外に、実行時に LINQ データベース接続文字列を変更できる方法はありますか? これをプロジェクトの設定に保存しますか?
2141 次
2 に答える
0
これは、私のプロジェクトで使用するコードです。静的なので、どこからでも呼び出すことができます。MyEntities と MyModel をプロジェクトの適切な名前に変更します。
public static MyEntities NewContext()
{
var y = new System.Data.EntityClient.EntityConnectionStringBuilder();
y.Provider = "System.Data.SqlClient";
string conn = CodeToGetConnectionStringHere();
if(!conn.EndsWith(";")) conn += ";";
conn += "MultipleActiveResultSets=true";
y.ProviderConnectionString = conn;
y.Metadata = "res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl";
return new MyEntities(y.ConnectionString);
}
于 2012-08-13T06:30:12.490 に答える
0
接続文字列をプロジェクト設定に安全に保存できます。EntityConnectionStringBuilderクラスを使用してビルドします。
class ConnectionStringFactory
{
internal stati string BuildModelConnectionString(string connectionString)
{
var builder = new EntityConnectionStringBuilder
{
Provider = "System.Data.SqlClient",
Metadata = @"your metadata string",
ProviderConnectionString = connectionString
};
return builder.ConnectionString;
}
}
次に、次のようにコードで上記のメソッドを使用できます。
var connectionString = ConnectionStringFactory.BuildModelConnectionString(Settings.ConnectionString);
using(var dataContext = new DataContext(connectionString))
{
// your logic here...
}
于 2012-08-13T06:55:15.500 に答える