Maison  >  Article  >  base de données  >  Comment se connecter à un nom de base de données dynamique dans Entity Framework 6 avec MySQL ?

Comment se connecter à un nom de base de données dynamique dans Entity Framework 6 avec MySQL ?

DDD
DDDoriginal
2024-11-07 14:36:02315parcourir

How to Connect to a Dynamic Database Name in Entity Framework 6 with MySQL?

Connexion dynamique à la base de données dans Entity Framework 6 pour MySQL

Configuration de MySQL pour Entity Framework 6

Pour établir une connexion entre Entity Framework 6 et MySQL, suivez ces étapes :

  • Installez MySQL .Net Connector 6.8.1 (bêta) à partir du site officiel de MySQL.
  • Référence Mysql.Data.dll et Mysql.Data.Entity.EF6. dll dans votre solution Visual Studio.
  • Copiez ces fichiers dans le répertoire bin de votre projet pour y accéder pendant la construction.
  • Ajoutez une chaîne de connexion à votre fichier Web.config, en vous assurant qu'il inclut l'attribut supplierName :
<add name="mysqlCon" connectionString="Server=localhost;Database=dbName;Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" />
  • Ajoutez les informations de fournisseur suivantes dans le fichier dans votre fichier Web.config :
<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>
  • Supprimez le nœuds du nœud si vous l'avez modifié par défaut.

Connexion à un nom de base de données dynamique

  • Mettez à jour la chaîne de connexion dans Web.config pour inclure un espace réservé pour le nom de la base de données :
<add name="mysqlCon" connectionString="Server=localhost;Database={0};Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" />
  • Modifiez la classe ApplicationDbContext comme suit :
public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName))
    {
    }

    public static string GetConnectionString(string dbName)
    {
        var connString = ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString();
        return String.Format(connString, dbName);
    }
}
  • Gérez les migrations de bases de données en ajoutant une classe MigrationsContextFactory à la fin de votre classe de contexte :
public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}

Cela vous permet de transmettre une chaîne de connexion dynamique au contexte du framework d'entité, vous permettant de basculer facilement entre plusieurs schémas de base de données identiques en fonction du compte.

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