Heim  >  Artikel  >  Datenbank  >  Wie kann ich mit MySQL eine Verbindung zu einem dynamischen Datenbanknamen in Entity Framework 6 herstellen?

Wie kann ich mit MySQL eine Verbindung zu einem dynamischen Datenbanknamen in Entity Framework 6 herstellen?

DDD
DDDOriginal
2024-11-07 14:36:02396Durchsuche

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

Dynamische Datenbankverbindung in Entity Framework 6 für MySQL

Konfigurieren von MySQL für Entity Framework 6

Um eine Verbindung zwischen Entity Framework 6 und MySQL herzustellen, Befolgen Sie diese Schritte:

  • Installieren Sie MySQL .Net Connector 6.8.1 (Beta) von der offiziellen MySQL-Website.
  • Referenz Mysql.Data.dll und Mysql.Data.Entity.EF6. dll in Ihrer Visual Studio-Lösung.
  • Kopieren Sie diese Dateien in das Bin-Verzeichnis Ihres Projekts, damit Sie während der Erstellungszeit darauf zugreifen können.
  • Fügen Sie Ihrer Web.config-Datei eine Verbindungszeichenfolge hinzu und stellen Sie sicher, dass sie das Attribut „providerName“ enthält :
<add name="mysqlCon" connectionString="Server=localhost;Database=dbName;Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" />
  • Fügen Sie die folgenden Anbieterinformationen innerhalb des hinzu. Knoten in Ihrer Web.config-Datei:
<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>
  • Entfernen Sie den Knoten aus der Knoten, wenn Sie den Standardwert geändert haben.

Herstellen einer Verbindung mit einem dynamischen Datenbanknamen

  • Aktualisieren Sie die Verbindungszeichenfolge in Web.config so, dass sie einen Platzhalter für den Datenbanknamen enthält :
<add name="mysqlCon" connectionString="Server=localhost;Database={0};Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" />
  • Ändern Sie die ApplicationDbContext-Klasse wie folgt:
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);
    }
}
  • Behandeln Sie Datenbankmigrationen, indem Sie am Ende eine MigrationsContextFactory-Klasse hinzufügen Ihre Kontextklasse:
public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}

Dadurch können Sie eine dynamische Verbindungszeichenfolge an den Entity-Framework-Kontext übergeben und so problemlos zwischen mehreren identischen Datenbankschemata basierend auf dem Konto wechseln.

Das obige ist der detaillierte Inhalt vonWie kann ich mit MySQL eine Verbindung zu einem dynamischen Datenbanknamen in Entity Framework 6 herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn