web-dev-qa-db-fra.com

Entity Framework Données d'entité Wizard Se bloque lors de la connexion à la base de données MySQL

J'essaie de créer un modèle de données d'entité à l'aide de l'assistant pour procéder au reverse engineering d'une base de données MySQL existante. J'arrive à la page Choisissez votre connexion de données de l'assistant, sélectionnez une connexion MySQL existante et cliquez sur Suivant. L'assistant se bloque. Plus précisément, la boîte de dialogue disparaît simplement sans message d'erreur ni trace. A chaque fois. Redémarrer VS ou Windows ne fait rien.

Je peux me connecter à la base de données à l'aide de l'Explorateur de serveurs et de la même connexion sans problème. Je suis donc plutôt confiant que ce n'est pas un problème de connexion.

Il s'agit de Visual Studio 2015 avec toutes les mises à jour installées, version 1.2.6 de MySQL pour Visual Studio, EF 6.1.3, MySql.Data et MySql.Data.Entity.EF6, versions 6.8.3.0. Il s’agit d’une application console ciblant le .NET Framework 4.6.1.

Google n'a encore rien révélé d'utile. Une autre question ici d’hier est similaire, mais se bloque à un point différent et cet utilisateur ne peut pas se connecter à l’aide de l’explorateur de serveurs. Cela semble donc être une situation différente.

Il n'y a rien dans les journaux Windows qui puisse vous aider.

Comment puis-je résoudre ce problème? 

19
RiverRunner

Cela est dû à une incompatibilité de version.

Sur mon système, j'avais MySQL Connector 6.9.6 . Émettre la commande dans la console NuGet Package Manger:

Install-Package MySql.Data.Entity Installe la version 6.9.8 par défaut. Votre connecteur doit correspondre à la version actuelle du package NuGet . Vous pouvez télécharger une version mise à jour du connecteur à partir de: https://www.mysql.com/products/connector/

Sélectionnez ici le "pilote Ado.net pour MySQL" et téléchargez la version correspondante (6.9.8 dans ce cas). Rouvrez Visual Studio et l’assistant ne se bloque plus. Aucun redémarrage requis.

29
Lars Meldgård

J'ai eu ce problème aujourd'hui, en suivant les conseils ici que c'est un "mismatch de version" est tout à fait correct!

Mon importante "découverte" est le fait qu'ils ont renommé le paquet dont vous avez besoin pour EF6! Comme beaucoup de personnes ici l'ont découvert (par exemple, "Nofi"), le déclassement pour correspondre aux versions corrige le problème. Cependant, au lieu de rétrograder les nouvelles versions, remplacez le package Mysql.Data.Entity par le nouveau MySql.Data.EntityFramework ! :)

short: utilisez MySql.Data.EntityFramework , NOT Mysql.Data.Entity

6
Magnus Ingwersen

J'ai rencontré le même problème parce que j'utilisais Mysql connector v 8.0.12 , MySql.Data v8.0.12 et Mysql.Data.Entity v6.10.8 .

Le programme se bloque à cause de problèmes de compatibilité. Ce qui a fonctionné pour moi, c’est que j’ai installé les trois versions de la même version.

Mysql connector v 6.10.8 et MySql.Data v6.10.8 et Mysql.Data.Entity v6.10.8 .

2
Nofi

Cela continue avec VS2017 et le dernier connecteur MySQL (6.10.6). La rétrogradation du connecteur et du package Nuget vers la version 6.9.11 fonctionne.

2
ctzei

Je suis nouveau en programmation/développement .Net. J'ai eu le même problème où la fenêtre disparaît lorsque j'essaie de générer un modèle d'entité à partir de la base de données MySql. 

J'ai essayé les versions correspondantes des paquets Nuget et du connecteur, mais toujours pas de joie. Voici ce que j'ai fait pour que cela fonctionne:

  • J'ai enlevé puis recréé le projet (heureusement que c'était un nouveau projet) - Puis généré le modèle à partir de la base de données
  • Ensuite, j'ai installé les packages Nuget pour correspondre à la version de mon connecteur. 

J'utilise VS 2017 Community Edition, Connector V6.9.9, Nuget packages V6.8.8

J'espère que ça aide quelqu'un.

1
Nico Slabbert

Étant donné que la version la plus élevée de MySql.Data.Enetity est la v6.10.8 que je peux trouver via un nuget, j'ai téléchargé le fichier "mysql-connector-net-6.10.8.msi". , ça a joué!

1
Gabor Nagy

Par pure chance, je suis tombé sur la même erreur… .. J'utilise VS 2015 avec Entity Framework 6 également. L'erreur s'est également produite lors de la tentative de création du modèle à partir de la base de données à l'aide de la connexion existante de reverse engineering EF.

Le problème est que même si la connexion de données existe et que vous pouvez l'actualiser, la connexion est interrompue. Allez dans le panneau Explorateur de serveurs à gauche, puis sous Connexions de données , trouvez votre connexion existante et, au lieu de la vérifier avec refresh , cliquez dessus avec le bouton droit de la souris et choisissez Modifier la connexion .

À partir de là, essayez de tester la connexion et d’appuyer sur OK. Vous devriez avoir une erreur (pour moi, il disait " Impossible de se connecter à l'un des hôtes MySQL spécifiés. ')

1
Keyur PATEL

Comme je l'ai dit à Lars Meldgård, la désinstallation et la réinstallation de la version 6.9.9 de Connector/Net m'ont amené une page plus loin dans l'assistant. Donc, je vais prendre ça comme une victoire. Mais je suis vraiment confus pourquoi cela a fonctionné. Je rencontrais le problème sur deux ordinateurs différents, mon ordinateur de bureau principal et mon ordinateur portable. Des configurations similaires dans Windows 10 avec tout à jour, les deux ont-elles été corrompues? Pas probable.

Alors maintenant, le problème se trouve sur la page Choisissez votre version de l'Assistant, où l'erreur apparaît ci-dessous. Mais c’est un problème différent, que je traiterai ensuite.

Nouvelle erreur sur la page suivante de l'assistant

1
RiverRunner

Les incompatibilités semblent être sur la version exacte de MySQL Connector Net. J'ai de nombreux projets en développement et en développement avec "MySQL Connector Net 8.0.13" et je ne suis pas encore en mesure de procéder à une mise à niveau. Le paquet NuGet actuel était "MySQL Connector Net 8.0.15 ". Je devais désinstaller "MySql.Data.EntityFramework 8.0.15" et "MySql.Data 8.0.15", puis forcer la version avec les installations en ligne de commande à correspondre à la version actuelle de MySQL Connector Net que je lance dans dev et prod:

PM> Install-Package MySql.Data.EntityFramework -Version 8.0.13
PM> Install-Package MySql.Data -Version 8.0.13
0
Justin

Je partage mon problème que j'ai finalement résolu, car c'est un vrai casse-tête à attraper.

J'avais une colonne d'ID de rôle dans Table Role initialement définie sur number (38,0) en SQL et la créais de cette façon, puis changée en NUMBER (10,0) et la changeais . Après plusieurs jours de résolution, J'ai enfin cliqué avec le bouton droit de la souris sur les tables de la connexion au serveur, puis sur Designer. Ma seule table: Role, avait un identifiant de colonne - numéro de type (10,0). Il était lié à la table USER en tant que RoleID. Après avoir vérifié le RoleID dans la table USER, dans le concepteur, il apparaissait sous le numéro (38,0) . Vérifiez donc vos clés étrangères une par une ... C’est mon problème qui m’a coûté 3 jours pour finalement attraper. Ma boîte de dialogue EF vient également de disparaître, ou ne me donnerait aucune table dans le fichier EDMX.

0
Ryno Potgieter