Maison > Article > base de données > Comment obtenir une connexion dynamique à une base de données avec Entity Framework 6 pour MySQL ?
Connexion dynamique à une base de données avec Entity Framework 6 pour MySQL
La connexion dynamique de plusieurs schémas avec Entity Framework 6 (EF6) peut être difficile. Cet article fournit une solution complète pour établir une connexion dynamique aux bases de données MySQL et transmettre la chaîne de connexion en fonction du nom de la base de données sélectionnée.
Préparer MySQL pour EF6
Commencer en installant MySQL .Net Connector 6.8.1 (bêta) et en référenceant les bibliothèques dans votre solution Visual Studio. Ajoutez une chaîne de connexion et des informations sur le fournisseur au fichier Web.config :
<connectionStrings> <add name="mysqlCon" connectionString="Server=localhost;Database={0};Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" /> </connectionStrings> <entityFramework> <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> <providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> </providers> </entityFramework>
Création d'une connexion à une base de données dynamique
Ensuite, modifiez la classe ApplicationDbContext :
public class ApplicationDbContext: DbContext { public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName)) { } public static string GetConnectionString(string dbName) { // Server=localhost;Database={0};Uid=username;Pwd=password var connString = ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString(); return String.Format(connString, dbName); } }
Cela permet de passer dynamiquement le nom de la base de données en tant que paramètre lors de la création d'un nouveau ApplicationDbContext exemple.
Gestion des migrations de bases de données
Pour les migrations, créez une classe MigrationsContextFactory :
public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext> { public ApplicationDbContext Create() { return new ApplicationDbContext("developmentdb"); } }
Cette usine spécifie une base de données par défaut pour les migrations, garantissant les migrations ciblent le bon schéma.
Conclusion
L'utilisation de cette approche permet la sélection dynamique des schémas de base de données dans Entity Framework 6. En modifiant la fabrique de connexions par défaut et en créant une méthode d'assistance pour générer dynamiquement la chaîne de connexion, il est possible de se connecter efficacement à plusieurs schémas.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!