web-dev-qa-db-de.com

Entity Framework Entity-Daten Wizard Abstürze beim Herstellen einer Verbindung zur MySQL-Datenbank

Ich versuche, ein Entitätsdatenmodell mit dem Assistenten zu erstellen, um eine vorhandene MySQL-Datenbank rückzuentwickeln. Ich rufe die Seite Choose Your Data Connection des Assistenten auf, wähle eine vorhandene MySQL-Verbindung aus und klicke auf Weiter, und der Assistent stürzt ab. Insbesondere verschwindet das Dialogfeld ohne Fehlermeldung oder Trace. Jedes Mal. Durch den Neustart von VS oder Windows wird nichts unternommen.

Ich kann mit dem Server-Explorer und derselben Verbindung ohne Probleme eine Verbindung zur Datenbank herstellen, daher bin ich ziemlich sicher, dass dies kein Verbindungsproblem ist.

Dies ist in Visual Studio 2015 mit allen installierten Updates, Version 1.2.6 von MySQL für Visual Studio, EF 6.1.3 und MySql.Data und MySql.Data.Entity.EF6, Versionen 6.8.3.0. Es ist eine Konsolenanwendung, die auf .NET Framework 4.6.1 abzielt.

Google hat noch nichts Nützliches enthüllt. Eine andere Frage hier von gestern ist ähnlich, stürzt jedoch an einem anderen Punkt ab und der Benutzer kann keine Verbindung mit dem Server Explorer herstellen. Es scheint also eine andere Situation zu sein.

In den Windows-Protokollen gibt es nichts, was Ihnen helfen könnte.

Wie kann ich dieses Problem lösen? 

19
RiverRunner

Dies wird durch einen Versionskonflikt verursacht.

Auf meinem System hatte ich MySQL Connector 6.9.6. Ausgabe des Befehls in der NuGet Package Manager-Konsole:

Das Installationspaket MySql.Data.Entity installiert standardmäßig die Version 6.9.8. Ihr Connector muss mit der tatsächlichen Version des NuGet-Pakets übereinstimmen. Sie können eine aktualisierte Version des Connectors von folgender Adresse herunterladen: https://www.mysql.com/products/connector/

Wählen Sie hier den "Ado.net-Treiber für MySQL" und laden Sie die entsprechende Version (in diesem Fall 6.9.8) herunter. Öffnen Sie Visual Studio erneut und der Assistent stürzt nicht ab. Kein Neustart erforderlich.

36
Lars Meldgård

Ich hatte dieses Problem heute, den Tipps hier folgend, dass es sich um einen "Versionskonflikt" handelt, ist völlig korrekt!

Meine wichtige "Entdeckung" ist, dass sie das Paket, das Sie für EF6! .__ benötigen, umbenannt haben. Wie viele Leute hier entdeckt haben (zum Beispiel "Nofi"), wird das Problem durch ein Downgrade auf entsprechende Versionen behoben. Statt die neuen Versionen herunterzustufen, tauschen Sie jedoch das Paket Mysql.Data.Entity gegen das neuere MySql.Data.EntityFramework aus! :)

short: use MySql.Data.EntityFramework , NICHT Mysql.Data.Entity

6

Ich stand vor demselben Problem, weil ich Mysql Connector v 8.0.12 , MySql.Data v8.0.12 und Mysql.Data.Entity v6.10.8 verwendete.

Das Programm stürzt aufgrund von Kompatibilitätsproblemen ab. Was für mich funktioniert hat, ist, dass ich alle drei derselben Version installiert habe

Mysql Connector v 6.10.8 und MySql.Data v6.10.8 und Mysql.Data.Entity v6.10.8 .

2
Nofi

Dies passiert immer wieder mit VS2017 und dem neuesten MySQL-Connector (6.10.6). Das Downgrade des Connectors und des Nuget-Pakets auf 6.9.11 funktioniert.

2
ctzei

Ich bin neu in der Programmierung/.Net-Entwicklung. Ich hatte das gleiche Problem, wo das Fenster verschwindet, wenn ich versuche, ein Entitätsmodell aus der MySQL-Datenbank zu generieren. 

Ich habe die passenden Versionen von Nuget-Paketen und Konnektoren versucht, aber immer noch keine Freude. Was ich getan habe, um es zum Laufen zu bringen, ist wie folgt:

  • Ich habe das Projekt entfernt und dann neu erstellt (zum Glück war es ein neues Projekt) - Dann wurde das Modell aus der Datenbank generiert
  • Dann habe ich die Nuget-Pakete entsprechend der Version meines Connectors installiert. 

Ich verwende VS 2017 Community Edition, Connector V6.9.9, Nuget-Pakete V6.8.8

Hoffe das hilft jemandem.

1
Nico Slabbert

Da die höchste Version von MySql.Data.Enetity v6.10.8 ist, die ich über nuget finden kann, habe ich das "mysql-connector-net-6.10.8.msi" heruntergeladen, also habe ich MySql.Data auf v.6.10.8 heruntergestuft , das hat einen Trick gebracht!

1
Gabor Nagy

Aus reinem Glück und Zufall bin ich auf den gleichen Fehler gestoßen ... Ich nutze VS 2015 auch mit Entity Framework 6. Der Fehler trat auch auf, als ich versuchte, das Modell aus der Datenbank mithilfe der EF Reverse Engineering-Verbindung zu erstellen.

Das Problem ist, dass, obwohl die Datenverbindung besteht und Sie sie aktualisieren können, die Verbindung irgendwie unterbrochen ist. Gehen Sie in das Fenster Server Explorer auf der linken Seite, dann unter Datenverbindungen , um Ihre bestehende Verbindung zu finden. Statt sie mit refresh zu überprüfen, klicken Sie mit der rechten Maustaste darauf und wählen Sie Modify Connection . .

Testen Sie die Verbindung und drücken Sie OK. Sie sollten eine Fehlermeldung erhalten (für mich stand ' Verbindung zu den angegebenen MySQL-Hosts kann nicht hergestellt werden. ')

1
Keyur PATEL

Wie ich zu Lars Meldgård kommentierte, brachte die Deinstallation und Neuinstallation der Version 6.9.9 von Connector/Net eine weitere Seite im Assistenten. Also nehme ich das als Gewinn an. Aber ich bin wirklich verwirrt, warum das funktioniert hat. Ich bekam das Problem auf zwei verschiedenen Computern, meinem Haupt-Desktop-Computer und meinem Laptop. Ähnliche Konfigurationen in Windows 10 mit allem, was auf dem neuesten Stand ist, wurden also beide beschädigt? Unwahrscheinlich.

Das Problem befindet sich nun auf der Seite Choose Your Version des Assistenten, auf der der folgende Fehler angezeigt wird. Das ist aber ein anderes Problem, das ich als nächstes angehen werde.

Neuer Fehler auf der nächsten Seite des Assistenten

1
RiverRunner

Die Unstimmigkeiten scheinen sich auf die genaue Version des MySQL Connector Net zu beziehen. Ich habe viele Projekte in dev und prod mit "MySQL Connector Net 8.0.13" und kann noch nicht umfassend upgraden. Das aktuelle NuGet-Paket war "MySQL Connector Net 8.0.15 ". Ich musste sowohl "MySql.Data.EntityFramework 8.0.15" als auch "MySql.Data 8.0.15" deinstallieren und erzwingen, dass die Version mit Befehlszeileninstallationen mit der aktuellen Version von MySQL Connector Net übereinstimmt, die ich in dev und prod ausführte:

PM> Install-Package MySql.Data.EntityFramework -Version 8.0.13
PM> Install-Package MySql.Data -Version 8.0.13
0
Justin
<providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.16.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>

Ich habe die Version von MySql.Data.EntityFramework auf 8.0.16 geändert, da mein Connector 8.0.16 und mein Problem verschwunden sind. das hat bei mir funktioniert

0
aziz eser

Ich teile mein Problem, das ich endlich gelöst habe, da dies wirklich Kopfschmerzen bereitet.

Ich hatte eine Rollen-ID-Spalte in Table Role, die anfänglich in SQL auf number (38,0) gesetzt und auf diese Weise erstellt und dann in NUMBER (10,0) geändert und in ..__ geändert wurde. Nach Tagen des Versuchs, dies zu beheben , Schließlich habe ich mit der rechten Maustaste auf die Tabellen in der Serververbindung geklickt und auf Designer geklickt. Meine einzige Tabelle: Rolle, hatte eine Spalten-ID - Typnummer (10,0). Es wurde als RoleID mit der Tabelle USER verknüpft. Nach der Überprüfung der RoleID in der Tabelle USER wurde im Designer als Number (38,0) ... angezeigt. Überprüfen Sie also Ihre Fremdschlüssel nacheinander ... Dies war mein Problem, das mich 3 Tage gekostet hat, um es endlich zu fangen. Mein EF-Dialogfeld ist auch einfach verschwunden oder würde mir keine Tabellen in der EDMX-Datei geben.

0
Ryno Potgieter