Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Von Visual Studio 2015 aus kann keine Verbindung zu MySQL hergestellt werden

Damit VS 2015 eine Verbindung zu MySql herstellen kann, müssen Sie eine neuere Version der MySql-Bibliotheken verwenden. Das scheint zwar eine ziemlich einfache Antwort zu sein, aber ehrlich gesagt bin ich auf dem Weg auf mehrere Probleme gestoßen. Vor diesem Hintergrund werde ich den 1-Prozess aufschreiben, der für mich konsequent funktioniert hat, soweit es darum geht, EF mit MySql und VS2015 zum Laufen zu bringen. Also, ohne weitere Umschweife, hier sind die Schritte, die ich unternommen habe, um dies zum Laufen zu bringen.

1) Stellen Sie sicher, dass die MySql-Connector-Installation aktualisiert ist

2) Erstellen Sie Ihr Webprojekt

3) Nuget öffnen

4) Entity Framework installieren

5) Suchen Sie nach MySql

6) Installieren Sie MySql.Data

7) Installieren Sie MySql.Data.Entity

8) Installieren Sie MySql.Data.Entities

9) Installieren Sie MySql.Web

10) Gehen Sie zu den Referenzen für das Projekt und löschen Sie MySql.Data.Entity.EF6

11) Überprüfen Sie die Versionen der Bibliotheken MySql.Data und MySql.Web. Wenn sie unter 6.9.6 sind, löschen Sie sie ebenfalls

12) Fügen Sie eine neue Referenz hinzu, indem Sie zum Installationsverzeichnis für den MySQL-Connector für Ihre Version des .NET-Frameworks navigieren (meins ist C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5) und die MySql.Data.Entity.EF6.dll greifen (meine Version ist 6.9.6, denken Sie daran, wenn wir später die web.config ändern)

13) Wenn es sich bei den anderen Bibliotheken auch um ältere Versionen handelt, fügen Sie Verweise darauf hinzu, indem Sie zum Paketordner in Ihrer Lösung navigieren und die Dateien aus ihren jeweiligen Ordnern abrufen. Normalerweise muss ich das nicht tun.

14) Jetzt muss die Web.config bearbeitet werden. Der erste Schritt besteht darin, den Entity-Framework-Abschnitt durch diesen Code zu ersetzen (ändern Sie die Versionsnummer in Ihre aktuelle Version. Bitte beachten Sie, dass ich dieses Snippet vor ein paar Wochen im Internet gefunden habe und den ursprünglichen Link nicht habe. Ich entschuldige mich beim Original Poster dieser Informationen.)

<entityFramework>
<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, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>

15) Stellen Sie sicher, dass Ihr DbProviderFactories-Abschnitt übereinstimmt

<DbProviderFactories>
  <remove invariant="MySql.Data.MySqlClient" />
  <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>

16) Speichern und erstellen

Ich bin mir nicht sicher, wie viele dieser Schritte tatsächlich erforderlich sind, aber nachdem ich es endlich geschafft hatte, musste ich tatsächlich etwas Arbeit erledigen und hatte keine Zeit, die Dinge weiter einzugrenzen. Hoffentlich bringt Sie das in Bewegung.

P.S. Wenn Sie nach all dem den Assistenten durchlaufen und er einfach verschwindet, bevor er Ihnen die Tabellen in der Datenbank zeigt, aus denen Sie Entitäten erstellen können, könnte dies eines von drei Problemen sein, auf die ich unterwegs gestoßen bin. Der Datenbankserver kann nicht kontaktiert werden. Der Benutzer hat nicht die erforderlichen Berechtigungen für die Datenbank. Die falsche Version von MySql.Data.Entity.EF6 wurde als Referenz hinzugefügt oder die Versionsnummer ist in der web.config falsch. Wenn ich diese Datei aus dem Paketverzeichnis meiner Lösung hole, stoße ich oft auf dieses Problem mit dem abgebrochenen Assistenten ohne Fehlermeldung. Das Abrufen aus dem MySql-Installationsverzeichnis hat bei mir jedes Mal gut funktioniert.