0

使用來自同一文件的appSettings參數可以在app.config(在本例中爲connectionStrings)中編寫一些xml條目嗎? 例子:C#使用appSettings參數在app.config中編寫連接字符串

<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> 

我想以某種方式使用UserId,而不是userPassword,而不是MyContextDB's connectionStringpwd值。

此連接,然後在DbContext對象使用:

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

回答

2

你當然可以看看使用SqlConnectionStringBuilder。將現有的連接字符串傳遞給構造函數。設置PasswordUserID屬性。然後致電ToString()

您將無法像DbContext那樣傳遞連接字符串。你可以考慮將其重構爲工廠模式或類似的東西。

我也會考慮使用配置轉換在配置時實際更新配置文件。

0

使用SqlConnectionStringBuilder:

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"]; 

然後,以獲得新的ConnectionString:

builder.ToString(); 
+0

是不是這是我說的嗎? –

+0

對不起,我沒有看到您的評論。 –

相關問題