Maison  >  Article  >  base de données  >  Comment établir une connexion MySQL dynamique avec Entity Framework 6 ?

Comment établir une connexion MySQL dynamique avec Entity Framework 6 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-07 20:40:03405parcourir

How to Establish a Dynamic MySQL Connection with Entity Framework 6?

Connexion dynamique MySQL avec Entity Framework 6

La connexion à un nom de base de données dynamique à l'aide d'Entity Framework 6 implique certaines considérations.

Obtention de la compatibilité MySQL

  • Installez le connecteur MySQL .Net 6.8.1.
  • Référence Mysql.Data.dll et Mysql.Data.Entity.EF6. dll.
  • Inclure la chaîne de connexion et le fournisseur dans 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>

Connexion dynamique à la base de données

  • Créer une méthode d'assistance pour construire la chaîne de connexion avec un espace réservé pour le nom de la base de données :
public static string GetConnectionString(string dbName)
{
    var connString = ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString();
    return String.Format(connString, dbName);
}
  • Modifier la classe ApplicationDbContext :
public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName))
    {
    }
}
  • Utilisation :
ApplicationDbContext db = new ApplicationDbContext("dbName");

Remarque : Si vous utilisez des migrations de bases de données, ajoutez une classe d'usine pour transmettre le nom de la base de données dans la méthode de départ :

public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn