Entity Framework-Assistenten stürzt auf MySQL
Meine Frage ist ähnlich diese eine aber der Absturz passiert später. Ich muss zusammenarbeiten EF-Datenbank-erste, Modell-zwischen SQL Server und MySQL. Genauer gesagt, meine Anwendung war in plain SQL-Abfragen ausgelöst entweder SQL-Server oder MySQL nach Verbindungszeichenfolge und Konfiguration-Einstellung (DB_TYPE=MYSQL
usw.), nachdem beide Datenbanken mit der gleichen Struktur und gepflegt zusammen, so dass jede änderung an einem schema, wurde erneut auf der anderen.
Ich jetzt Hinzugefügt EF support, um die Anwendung mit SQL Server-Datenbank-erste, Modell. Ich muss jetzt lassen Sie die Anwendung laufen auf MySQL zu. Um zu überprüfen, dass die alten Entwickler nicht verlassen, etwas disaligned zwischen den beiden DBMS, versuchte ich zu Update model against database
* und dieses mal wählte ich die MySQL-Verbindung auf meine Entwicklung-Datenbank auf localhost.
Nachdem ich auf Next
auf dem Bildschirm unten, es stürzt einfach ab und zurück zu EDMX-editor
Muss ich voran gehen mit dem Projekt, ich bin stecken geblieben auf diese seit einer Weile.
Hier ist mein Web.config-fragment:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<system.data>
<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.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Wie kann ich mein problem lösen? Ich neu installiert, die MySQL-tools für Visual Studio, aber hat nicht geholfen.
*Ich verwenden eine lokalisierte version von Visual Studio, also ich weiß nicht, das original-Englisch für alle Befehle
- Ich vor einer ähnlichen Frage. Hast du jemals eine Lösung finden?
- Ich weiß, dass dies nicht als Antwort, sondern Zunächst die Datenbank ist nicht ein guter Ansatz, um Zugriff auf verschiedene DBMS-Typen. In EF7 wird nicht mehr unterstützt, EF-Anbieter sind sehr schwer zu schreiben und oft gibt es Probleme wie Ihr. Der beste Ansatz zum generieren von Klassen aus der Datenbank mit einem tool wie CodeSmith oder etwas ähnliches, dann gehen Sie auf eine Code-First-Ansatz.
- Fehler in log?
- Ist das bezogen? Entity Data Model-Assistenten stürzt auf Geben Sie die Verbindungszeichenfolge dialog
- Ja, verwandt. Aber wenigstens kann ich noch einen Schritt durchführen
- Oh, tut mir Leid. Ich wollte nicht sehen, Sie bereits verbunden sind. So hatten Sie nicht eine Lösung finden?
- Mögliche Duplikate von Entity Framework + MySQL-Klasse erzeugen
- bubi Sorry, aber ich bin völlig anderer Meinung. Code first ist eine schreckliche Lösung für große Projekte und relationalen dbs und generieren kann schrecklich Tisch-sets, müssen Hunderte von joins in Abfragen. Zunächst die Datenbank kann die Datenbank behandelt werden wie ein erste-Klasse-Bürger mit all der Sorgfalt und Aufmerksamkeit, die es braucht, um gut führen. Ich arbeitete an vielen code-erste Projekte und alle hatten große Probleme.
- Dieser link eine Lösung für mich: forums.mysql.com/read.php?174,667307,667319#msg-667319
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe keine Ahnung, warum das funktioniert, aber ich ging in mein NuGet-Paket-Manager und entfernt den MySql.Daten.Entität (auch geprüft werden, welche Abhängigkeiten entfernt MySql.Daten). Ich ging in mein .edmx und lief die 'Modell aus der Datenbank Aktualisieren..." und alles funktioniert.
(Hinweis: Dies wird ebenfalls entfernt, um mein entity framework, so dass ich musste hinzufügen, dass zurück über den NuGet Manager)
W...T...F?
Vielleicht können andere dies bestätigen...
Ich behoben dieses problem, indem Sie die folgenden Schritte ausführen (beachten Sie, dass im mit vs2015 und .net 4.5)
1) Deinstallieren Sie alle vorherigen mysql-connectors, die Sie haben
2) Entfernen Sie alle mySQL-Referenzen durch NuGet-Pakete
3) Download mysql connector v6.8.8
4) Sobald diese heruntergeladen ist, gehen Sie zu Ihrem Projekt und fügen Sie die Referenz auf das neu installierte dll-Dateien (befindet sich im Installations-Pfad, normalerweise C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.8\Assemblies\v4.5)
5) Gehen Sie zu Ihrem NuGet-Pakete hinzufügen und MySql.Daten (Version 6.8) und MySql.Daten.Entität (Version 6.8).
6) Bauen Sie Ihre Lösung und nicht mehr abstürzt 🙂
Hoffe, das hilft Ihnen heraus
Wenn Sie schauen, um dies scheint ein häufiges problem zu sein. Ich weiß, dieser Weg entlang der Strecke, aber spät ist besser als nie.
Ich irgendwann entfernt und neu installiert, visual studio 2015 und mysql und dann von Grund auf neu begonnen. Ich habe dann dafür gesorgt, dass ich ging durch den Prozess bringen nur das, was nötig war.
Bevor
Nach
Diese Feste für mich. Ich bin nicht sicher, dass Sie tun müssen, Sie erneut zu installieren, aber für sicher, dass Sie tun müssen, Schritt 2.
Glück.
Hatte ich ein ähnliches Problem. Nach der Installation von 'MySql.Daten 6.9.9' und 'MySql.Daten.Entity 6.9.9' Nuget-Pakete, die Assistenten stürzte, nachdem dieser Bildschirm. Ich legte einen debugger an und fand, es wurde verursacht durch eine null-Verweis-Ausnahme in MySql.Data.Entity.EF6.dll.
Ich dachte, es kann nicht sein das Pakete, da ich schon versucht, Neuinstallation von Ihnen, so dass ich dachte, es könnte ein Problem mit der MySQL-Installation für Visual Studio in Konflikt mit der MySQL-EF6 dll. Die Lösung für mich war einfach, installieren Sie die neueste "MySQL for Visual Studio 1.2.6":
http://dev.mysql.com/downloads/windows/visualstudio/
Könnte sein, ich hatte eine ältere version (glaube nicht, überprüfen Sie zuerst, so kann ich nicht bestätigen).
In meinem Fall war die Ursache, dass die version der installierten mysql-connector wurde, unterscheidet sich von der version der referenzierten MySQL.Daten.Entity
Wenn ich auf die gleiche version wurde alles in Ordnung.
Nun, ich kann Ihnen sagen, dass Stecker 8.0.xxx und alle die 8.0.xxx-dll, die MySQL hat für MySql-Server 8 eine vollständige Büste.
Gab es einen großen bug out https://bugs.mysql.com/bug.php?id=91030&Dank=3¬ify=195 nun seit über einem Jahr.
Wenn Ihr versucht, um mit MySql zu arbeiten 8.0 viele Anschlüsse und-Bibliotheken erhalten Sie eine Fehlermeldung....
"Der Anbieter hat nicht wieder einen ProviderManifestToken string".
Es ist ein Beweis für die absolut sub-null-Niveau der Unterstützung für visual studio, Dokumentation, Test und Entwicklung mit basic skill angewendet in der mysql-dll-Stecker und-Dokumentation, die ich habe in den letzten 40 Stunden meiner Wachen Leben, die versuchen, um gemeinsam ein funktionierendes Modell zu erhalten, meine Bewerbung um eine Verbindung mit dem MySql-8.0.16 und eine funktionierende entity framework-Assistenten. An diesem Punkt bin ich mir fast wünschte, ich entwickelte es, mithilfe von SQL Server.
Ich bin mit einer Variante von ASP.NET Identität 2.0 und das ist, was ich bekommen würde, zurück, wenn Sie versuchen, sich in
"Der Anbieter hat nicht wieder einen ProviderManifestToken string".
Sowieso hier ist, was ich bekam, für mich zu arbeiten.
Dies ist etwas, was ich habe zu arbeiten mit Server 8.0 auf Windows 10, das eine Verbindung und erlaubt log-in mit ASP.NET Identität 2.0 und wird zumindest laufen die Daten Entity-Assistenten bis zur Fertigstellung.
Installieren Sie Connector /Net 6.10.7
DLL
c:..\EntityFramework.6.2.0\lib\net45\EntityFramework.dll
C:..\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll
C:..\MySql.Data.6.10.7\v4.5.2\MySql.Data.dll
C:..\MySql.Data.6.10.7\v4.5.2\MySql.Data.Entity.EF6.dll
Ich hoffe, dies hilft einige Leute da draußen, aber ich hab so ein komisches Gefühl, kann Ihre Laufleistung variieren.
Für alle, die ' s noch die Begegnung mit diesem Problem hier sind die Versionen, die ich installieren musste um es zu erhalten arbeitend:
MySQL für Visual Studio: 2.0.5 (beachten Sie, dass zum Zeitpunkt der Veröffentlichung die neuesten General Availability release 1.2.9 - du wirst gehen müssen, um die Entwicklung Registerkarte Releases auf get version 2.0.5 - https://dev.mysql.com/downloads/windows/visualstudio/)
MySQL Connector/NET: 6.9.11 (https://downloads.mysql.com/archives/c-net/)
MySQL.Daten NuGet-Paket: 6.9.11 ("Install-Package von MySql.Daten -Version 6.9.11)
MySQL.Daten.Entity NuGet-Paket: 6.9.11 ("Install-Package von MySql.Daten.Entity -Version 6.9.11)
(Beachten Sie, dass ich nicht zum anpassen der config-Datei).
Hoffe, es hilft.
Es wurde beantwortet ein anderer thread, die typische crash-Grund ist die nicht übereinstimmende Versionen von MySQL connector und MySQL.Daten.Entität.
Und wahrscheinlichste Grund für Sie, um die falsche version ist, weil der Paketname geändert von MySQL.Daten.Entität MySql.Daten.EntityFramework.
Verbrachte ich viel Zeit auf den Versuch, die Antworten in dem thread, also nur zur info.
Ändere ich die config-Datei von
zu
und alles funktioniert
Referenz:https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html