ASP.NET EntityFramework mit MySQL-Datenbank verbinden

ASP.NET EntityFramework mit MySQL-Datenbank verbinden

Das EntityFramework von ASP.NET unterstützt von Haus aus Microsofts SQL-Server als relationales DBMS. Dank der Express-Editionen ist MS-SQL auch außerhalb des Enterprise-Bereiches eine ernsthafte Alternative zu MySQL geworden – 10 GB Speicherplatz pro Datenbank sollten für alle Kleineren und auch viele mittelgroße Projekte ausreichen. Neben der Frage, wieso man Closed-Source Software nutzen sollte wenn es doch Open Source Alternativen ohne Einschränkungen gibt, sprechen jedoch weiterhin einige Gründe gegen den Einsatz von MS-SQL. Beispielsweise die Nutzung einer bereits vorhandenen MySQL-Datenbank, auf die man mit einem ASP.NET Projekt aufbauen möchte. Da sich MySQL in ASP.NET nicht out of the box nutzen lässt, möchte ich die Installation der notwendigen Tools im folgenden erklären.

Installation von Drittanbieter-Komponenten

Damit ASP.NET überhaupt etwas mit MySQL anfangen kann, benötigen wir den DotNet-Connector. Er bringt die notwendigen MySQL-Treiber mit. Zusätzlich sorgt MySQL for Visual Studio für die Integration in die Entwicklungsumgebung. Beispielsweise der Server-Explorer, mit dem sich die Datenbank komfortabel verwalten lässt. Beide Komponenten müssen heruntergeladen und installiert werden:

Visual Studio sollte während der Installation geschlossen sein. Damit alle Änderungen korrekt übernommen werden, macht zudem ein anschließender Neustart von Windows sinn.

Tipp:

Ich empfehle die Installationsroutine jeweils im erweiterten Modus durchzuführen und darauf zu achten, dass bis auf Dokumentationen und Sampels alle Komponenten installiert werden. Im Zweifelsfall einen Rechtsklick auf das jeweilige Feature und Will be installed on local hard drive anklicken. Vor allem in den älteren Versionen gab es Bugs, die den EntityFramework-Provider sowie die Visual Studio Integration unvollständig oder gar nicht installierten. Dies trat selbst dann auf, wenn man die vollständige Installation auswählt.

NuGet-Pakete installieren

Um MySQL-Datenbanken aus ASP.NET heraus ansprechen zu können, müssen die NuGet-Pakete MySQL.DataMySql.Data.Entities und MySql.Data.Entity installiert werden. Dies geschieht entweder über die Konsole mithilfe von Install-Package <Paketname> oder alternativ nach einem Rechtsklick auf das Projekt > NuGet-Pakete verwalten auch über eine grafische Oberfläche.

Wichtig ist darauf zu achten, dass MySql.Data in der gleichen Version installiert wird wie der Net Connector – Version 6.9.8 wäre aktuell beispielsweise die jeweils aktuellste. Weichen Beide voneinander ab, kann es zu Problemen kommen.

Hinzufügen eines MySQL-Servers im Server-Explorer

Mithilfe des Server-Explorers kann aus Visual Studio heraus eine Verbindung zu einem Datenbankserver hergestellt werden. So lässt sich zudem gleich prüfen, ob der MySQL-Treiber korrekt installiert wurde. Wird der Server-Explorer nicht angezeigt, muss dieser zunächst über Ansicht > Server-Explorer eingeblendet werden.

Im Server-Explorer klicken wir oben auf den Button Mit Datenbank verbinden:

Nun sollte im sich öffnenden Dialog Datenquelle auswählen der Eintrag MySQL Database vorhanden sein:

In diesem Fall wurde der MySQL-Treiber korrekt installiert. Die Verbindungsdaten wie Servername, Nutzername etc. können im folgenden Schritt konfiguriert werden.

Der MySQL-Treiber taucht nicht auf: Troubleshooting

Sollte der MySQL-Treiber nicht in der Liste von Datenbankquellen zur Verfügung stehen, solltet ihr zunächst Visual Studio und Windows neu starten. Bei den neueren Versionen reicht häufig schon der Neustart von Visual Studio, damit der neue Treiber angezeigt wird. Wenn das nicht hilft, den Tipp aus dem ersten Abschnitt Installation beachten. Im Zweifel alle Features installieren – der Overhead durch nicht benötigte Features wie die Dokumentation ist verschmerzbar gering.

Leave a Reply