33 votes

EF 5 modifier la Chaîne de Connexion au moment de l'Exécution

Ok, je veux recréer un projet que j'ai créé en utilisant 4.1 EF EF 5.0, assez simple, ou tout au moins je le pensais. L'une des choses dans mon ancien projet, c'est que j'ai été en mesure de modifier la base de données de la chaîne de connexion au moment de l'exécution en EF 4.1:

using (var myContext = new MyEntities(ConnectionString))
{

}

Facile comme bonjour, mais en EF 5.0, vous devez le faire de façon différente:

string connectionString = "data source=LocalHost;initial catalog=MyDatabase;user id=MyUserName;password=MyPassword;multipleactiveresultsets=True;App=EntityFramework";

using (var myContext = new MyEntities())
{
         myContext.Database.Connection.ConnectionString = connectionString;
}

Maintenant, ce qui m'a pris une bonne partie de deux heures pour comprendre, donc je suppose que ma question est-ce la bonne façon de changer la chaîne de connexion au moment de l'exécution ou non? Si c'est pourquoi ont-ils fait ce changement?

J'ai trouvé ce Lien mais il ne fonctionne pas. J'ai reçu le message d'erreur tel que détaillé dans le premier commentaire de la première réponse par Ladislav Mrnka. Plus tard, j'ai trouvé ce Lien qui semble bien fonctionner.

Mise à JOUR

J'ai relu le premier lien que j'ai posté et j'ai trouvé une autre solution, j'ai simplement créé une classe partielle:

public partial class MyEntities : DbContext
{
    public MyEntities(string connectionString) : base(connectionString) 
    {
          Database.Connection.ConnectionString = connectionString; 
    }
}

6voto

marianosz Points 681

Utiliser le contexte de surcharge du constructeur qui prennent la chaîne de connexion en tant que paramètre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X