0

実行時に LINQ データベース接続を変更できるように、カスタム構成画面を作成したいと考えています。ソフトウェアを再起動する必要がある app.config を変更する以外に、実行時に LINQ データベース接続文字列を変更できる方法はありますか? これをプロジェクトの設定に保存しますか?

4

2 に答える 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 に答える