0

Est-il possible de composer une entrée xml dans app.config (dans mon cas certains de connectionStrings) en utilisant appSettings paramètres du même fichier? Exemple:C# compose connectionString dans app.config en utilisant appSettings paramètres

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

Je veux utiliser une certaine façon UserId au lieu de user et Password au lieu de pwd valeurs de MyContextDB's connectionString.

Cette connexion est alors utilisé dans DbContext objet:

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

Répondre

2

Vous ne pouvez certainement regarder à l'aide SqlConnectionStringBuilder. Transmettez votre chaîne de connexion existante au constructeur. Définissez les propriétés Password et UserID. Puis appelez ToString().

Vous ne serez pas en mesure de transmettre la chaîne de connexion comme cela pour votre DbContext. Vous pourriez envisager de refactoriser cela à un modèle d'usine ou quelque chose de similaire.

Je considérerais également l'utilisation des transformations de config pour réellement mettre à jour les fichiers de config au moment de la construction.

0

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

Ensuite, pour obtenir le nouveau connectionstring:

builder.ToString(); 
+0

est-ce pas ce que je dis? –

+0

Désolé, je n'ai pas vu votre commentaire. –