{"id":3287,"date":"2016-01-28T20:01:16","date_gmt":"2016-01-28T19:01:16","guid":{"rendered":"https:\/\/u-labs.de\/?p=3287"},"modified":"2017-02-06T11:27:41","modified_gmt":"2017-02-06T10:27:41","slug":"asp-net-entityframework-mit-mysql-datenbank-verbinden","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/asp-net-entityframework-mit-mysql-datenbank-verbinden\/","title":{"rendered":"ASP.NET EntityFramework mit MySQL-Datenbank verbinden"},"content":{"rendered":"<p>Das EntityFramework von ASP.NET unterst\u00fctzt von Haus aus Microsofts SQL-Server als\u00a0relationales DBMS. Dank der\u00a0<a href=\"http:\/\/www.microsoft.com\/de-de\/server-cloud\/products\/sql-server-editions\/sql-server-express.aspx\" target=\"_blank\" rel=\"nofollow\">Express-Editionen<\/a>\u00a0ist MS-SQL\u00a0auch au\u00dferhalb des Enterprise-Bereiches eine ernsthafte Alternative zu MySQL geworden &#8211; 10 GB Speicherplatz pro Datenbank sollten f\u00fcr alle Kleineren und auch viele mittelgro\u00dfe Projekte ausreichen.\u00a0Neben der Frage, wieso man Closed-Source Software nutzen sollte wenn es doch Open Source Alternativen ohne Einschr\u00e4nkungen gibt, sprechen jedoch weiterhin einige Gr\u00fcnde gegen den Einsatz von MS-SQL. Beispielsweise die Nutzung einer bereits vorhandenen MySQL-Datenbank, auf die man mit einem ASP.NET Projekt aufbauen m\u00f6chte. Da sich MySQL in ASP.NET nicht\u00a0out of the box\u00a0nutzen l\u00e4sst, m\u00f6chte ich die Installation der notwendigen Tools im folgenden erkl\u00e4ren.<\/p>\n<h3><strong>Installation von Drittanbieter-Komponenten<\/strong><\/h3>\n<p>Damit ASP.NET\u00a0\u00fcberhaupt etwas mit MySQL anfangen kann, ben\u00f6tigen wir den DotNet-Connector. Er bringt die notwendigen MySQL-Treiber mit. Zus\u00e4tzlich sorgt\u00a0<strong>MySQL for Visual Studio<\/strong> f\u00fcr die Integration in die Entwicklungsumgebung. Beispielsweise der Server-Explorer, mit dem sich die Datenbank komfortabel verwalten l\u00e4sst. Beide Komponenten m\u00fcssen heruntergeladen und installiert werden:<\/p>\n<ul>\n<li><a href=\"https:\/\/dev.mysql.com\/downloads\/windows\/visualstudio\/\" target=\"_blank\" rel=\"nofollow\">MySQL for Visual Studio herunterladen<\/a><\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/downloads\/connector\/net\/\" target=\"_blank\" rel=\"nofollow\">MySQL Connector\/Net herunterladen<\/a><\/li>\n<\/ul>\n<p>Visual Studio sollte w\u00e4hrend der Installation geschlossen sein. Damit alle \u00c4nderungen korrekt \u00fcbernommen werden, macht zudem ein anschlie\u00dfender Neustart von Windows sinn.<\/p>\n<p><b>Tipp:<\/b><\/p>\n<p>Ich empfehle die Installationsroutine jeweils im erweiterten Modus durchzuf\u00fchren und darauf zu achten, dass bis auf Dokumentationen und Sampels alle Komponenten installiert werden. Im Zweifelsfall einen Rechtsklick auf das jeweilige Feature und <strong>Will be installed on local hard drive<\/strong> anklicken. Vor allem in den \u00e4lteren Versionen gab es Bugs, die den EntityFramework-Provider sowie die Visual Studio\u00a0Integration unvollst\u00e4ndig oder gar nicht installierten. Dies trat selbst dann auf, wenn man die vollst\u00e4ndige Installation ausw\u00e4hlt.<\/p>\n<h3><strong>NuGet-Pakete installieren<\/strong><\/h3>\n<p>Um MySQL-Datenbanken aus ASP.NET heraus ansprechen zu k\u00f6nnen, m\u00fcssen die NuGet-Pakete\u00a0<strong>MySQL.Data<\/strong>,\u00a0<strong>MySql.Data.Entities<\/strong> und\u00a0<strong>MySql.Data.Entity<\/strong> installiert werden. Dies geschieht entweder \u00fcber die Konsole mithilfe von\u00a0<strong>Install-Package &lt;Paketname&gt;<\/strong> oder alternativ nach einem Rechtsklick auf das Projekt &gt;\u00a0<strong>NuGet-Pakete verwalten<\/strong> auch \u00fcber eine grafische Oberfl\u00e4che.<\/p>\n<p>Wichtig ist darauf zu achten, dass\u00a0<strong>MySql.Data<\/strong>\u00a0in der gleichen Version installiert wird wie der <strong>Net Connector<\/strong> &#8211; Version 6.9.8 w\u00e4re aktuell beispielsweise die jeweils aktuellste. Weichen Beide voneinander ab, kann es zu Problemen kommen.<\/p>\n<h3><strong>Hinzuf\u00fcgen eines MySQL-Servers im Server-Explorer<\/strong><\/h3>\n<p>Mithilfe des Server-Explorers kann aus Visual Studio heraus eine Verbindung zu einem Datenbankserver hergestellt werden. So l\u00e4sst sich zudem gleich pr\u00fcfen, ob der MySQL-Treiber korrekt installiert wurde. Wird der Server-Explorer nicht angezeigt, muss dieser zun\u00e4chst \u00fcber\u00a0<strong>Ansicht &gt; Server-Explorer<\/strong> eingeblendet werden.<\/p>\n<p>Im Server-Explorer klicken wir oben auf den Button\u00a0<strong>Mit Datenbank verbinden<\/strong>:\n<a href=\"https:\/\/u-labs.de\/wp-content\/uploads\/2015\/12\/server-explorer.png\" rel=\"attachment wp-att-3288\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3288\" src=\"https:\/\/u-labs.de\/wp-content\/uploads\/2015\/12\/server-explorer.png\" alt=\"\" width=\"242\" height=\"116\" \/><\/a><\/p>\n<p>Nun sollte im sich \u00f6ffnenden Dialog\u00a0<strong>Datenquelle ausw\u00e4hlen<\/strong> der Eintrag\u00a0<strong>MySQL Database\u00a0<\/strong>vorhanden sein:<\/p>\n<p><a href=\"https:\/\/u-labs.de\/wp-content\/uploads\/2015\/12\/server-explorer-data-source.png\" rel=\"attachment wp-att-3290\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3290\" src=\"https:\/\/u-labs.de\/wp-content\/uploads\/2015\/12\/server-explorer-data-source-300x200.png\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2015\/12\/server-explorer-data-source-300x200.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2015\/12\/server-explorer-data-source-255x170.png 255w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2015\/12\/server-explorer-data-source.png 517w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>In diesem Fall wurde der MySQL-Treiber korrekt installiert. Die Verbindungsdaten wie Servername, Nutzername etc. k\u00f6nnen im folgenden Schritt konfiguriert werden.<\/p>\n<h3><strong>Der MySQL-Treiber taucht nicht auf: Troubleshooting<\/strong><\/h3>\n<p>Sollte der MySQL-Treiber nicht in der Liste von Datenbankquellen zur Verf\u00fcgung stehen,\u00a0solltet ihr zun\u00e4chst Visual Studio und Windows neu starten. Bei den neueren Versionen reicht h\u00e4ufig schon der Neustart von Visual Studio, damit der neue Treiber angezeigt wird. Wenn das nicht hilft, den Tipp aus dem ersten\u00a0Abschnitt\u00a0<strong>Installation\u00a0<\/strong>beachten.\u00a0Im Zweifel alle Features installieren &#8211; der Overhead durch nicht ben\u00f6tigte Features wie die Dokumentation ist verschmerzbar gering.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das EntityFramework von ASP.NET unterst\u00fctzt von Haus aus Microsofts SQL-Server als\u00a0relationales DBMS. Dank der\u00a0Express-Editionen\u00a0ist MS-SQL\u00a0auch au\u00dferhalb des Enterprise-Bereiches eine ernsthafte Alternative zu MySQL geworden &#8211; 10 GB Speicherplatz pro Datenbank sollten f\u00fcr alle Kleineren und auch viele mittelgro\u00dfe Projekte ausreichen.\u00a0Neben der Frage, wieso man Closed-Source Software nutzen sollte wenn es doch Open Source Alternativen ohne &#8230;<\/p>\n","protected":false},"author":5,"featured_media":3290,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61],"tags":[336,338,337,339,340],"class_list":["post-3287","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softwareentwicklung","tag-asp-net","tag-ef","tag-entityframework","tag-mysql","tag-mysql-connector"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/3287","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=3287"}],"version-history":[{"count":6,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/3287\/revisions"}],"predecessor-version":[{"id":5126,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/3287\/revisions\/5126"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/3290"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=3287"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=3287"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=3287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}