MySQL Datenbank mit Entity Framework in einer MVC Anwendung

Der Microsoft Webstack setzt ja bekanntermaßen auf MS SQL als Datenbanksystem. Mit Entity Framework lässt sich die Datenbank durch den passenden Data Provider jedoch ohne Probleme tauschen.

Oracle bietet für MySQL einen Connector für .NET, sowie die Integration MySQL for Visual Studio. Während des Einsatz des Connectors reibungslos verlief, merkt man, dass Oracle die Entwicklung des Toolings stiefmütterlich behandelt. Beim Durchklicken durch den Wizard stürzte Visual Studio mehrmals ab. Ein weiterer Schwachpunkt der Templates ist die fehlende Möglichkeit den Entity Framework Code First Workflow zu nutzen.

Hier ein kleines 0-Code Beispiel zum Durchklicken

Vorraussetzungen:

  • Visual Studio 2013 oder höher
  • MySQL for Visual Studio 1.2.6 download hier
  • MySQL Connector/Net 6.9.9 download hier
  • Ein MySQL Server 5.5 oder höher (z.B. MySQL Azure oder MariaDB mit XAMPP)

Wichtig: Zuerst MySQL for Visual Studio, dann den Connector installieren.

Nach der Installation wird unsere Datenbank mit Demodaten gefüttert. Ich verwende die Sampledatabase von MySQLTUTORIAL. Durch das Toolings ist man nicht auf die Kommandozeile angewiesen, sondern kann die Scripts aus Visual Studio heraus ausführen. Dazu folgende Schritte ausführen:

  1. File –> new –> File –> MySQL Script 
  2. Connect to MySQL
    1step1 
  3. Sample Script einfügen
  4. Run SQL – nach erfolgreicher Ausführung sollte im Messages Fenster 36 rows affected o.ä. stehen.

Nun zum eigentlichen MVC Projekt:

  1. File –> new –> Project –> Web – ASP.NET Web Application
  2. MVC Template auswählen und No Authentication auswählen
  3. In der Package Manager Console (Tools –> NuGet Package Manager –> Package Manager Console) folgende Packages installieren:
    Install-Package EntityFramework
    Install-Package MySql.Data
    Install-Package MySql.Data.Entity
  4. Rechtsklick auf den Model Ordner des Projekts –> Add –> New Item
    Data – ADO.NET Entity Data Model
  5. EF Designer from database
  6. New Connection –> Data source auf MySQL Database umstellen –> im neuen Dialog die Zugangsdaten des MySQL Servers und den Datenbanknamen (classicalmodels) angeben.
  7. Häkchen bei Tables setzten
    2s2

Als letztes noch ein paar Klicks um eine View für unsere Daten hinzuzufügen:

  1. Rechtsklick auf das Projekt –> Add –> New Item
    MySQL – MySQL New MVC Item
  2. Im Wizard unser Model und eine Tabelle auswählen und auf Finish

Der Wizard konstruiert nun einen Controller und eine entsprechende View dazu. Die Daten sind in einem WebGrid enthalten, dem wir noch die 2 Bootstrap-Klassen table und table-bordered mitgeben, damit das Ganze optisch auch was hermacht:1

Kommentare sind geschlossen