0

パラメータと同じファイルからappSettingsパラメータを使用して(私の場合connectionStringsの一部に)app.configで一部のXMLエントリを構成することが可能ですか? 例:C#のコンは

<connectionStrings> 
    <add name="MyContextDB" connectionString="Data Source =.;Initial Catalog = EFMyContextDB;Integrated Security = false;User Id=user;Password=pwd" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

    <appSettings> 
    <add key="UserId" value="userValue" /> 
    <add key="Password" value="pwdValue" /> 
    </appSettings> 

私は何とかMyContextDB's connectionStringpwd値の代わりにUserId代わりのuserPasswordを使用します。

この接続は、その後DbContextオブジェクトで使用されます。

public class MyContext : DbContext 
{ 
    public MyContext() : base("name = MyContextDB") { } 
    ... 
} 

答えて

2

あなたは確かにSqlConnectionStringBuilderを使用して見ることができます。既存の接続文字列をコンストラクタに渡します。 PasswordUserIDのプロパティを設定します。その後、ToString()と呼んでください。

DbContextのような接続文字列を渡すことはできません。リファクタリングをファクトリパターンなどにすることもできます。

ビルド時にconfigファイルを実際に更新するためにconfigトランスフォームを使用することも考えます。

builder.ToString(); 
0

はSqlConnectionStringBuilderを使用しますか?
+0

が、これは私が言ったことではありません。新しいれたconnectionStringを取得するには、次に

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["MyContextDB"].ToString()); builder.UserID = System.Configuration.ConfigurationManager.AppSettings["UserId"]; builder.Password = System.Configuration.ConfigurationManager.AppSettings["Password"]; 

: –

+0

申し訳ありませんが、あなたのコメントは表示されませんでした。 –

関連する問題