web-dev-qa-db-fra.com

Impossible de créer un modèle de données d'entité - avec MySql et EF6

J'essaie d'ajouter un modèle edmx Entity à mon projet C #/Web dans Visual Studio 2013. Mon problème est que le fichier n'est pas créé.

Je fais les étapes suivantes:

  1. Donnez un nom à l'article
  2. Choisissez 'EF Designer from database'
  3. Choisissez la connexion dans la liste déroulante (localhost) qui a déjà été testée avec succès en se connectant à la base de données MySQL
  4. L'option "Enregistrer les paramètres de connexion dans webc.config en tant que" est cochée
  5. Je clique sur 'Suivant' ET la fenêtre a disparu et je reviens à la fenêtre de code

Aucun fichier edmx n'est créé. (bien que cela fonctionne avec SQL Server, mais pas pour MySQL)

J'ai installé Entity Framework 6.1.2, MySql.Data, MySql.Data.Entities, MySql.Data.Entity, MySql.Web - tous installés.

J'ai également reconstruit le projet avant d'essayer d'ajouter un fichier de modèle d'entité.

J'ai installé le dernier paquet MySQL avec le dernier .NET connector

En cours d'exécution: Visual Studio 2013 sur Windows 7.

Des idées pour résoudre ça?

22
Idan Shechter

J'ai résolu ce problème en suivant les étapes ci-dessous:

  1. Désinstallez MySql.Data.Entities de Nuget à l’aide de la commande ci-dessous dans la console Package Manager: Uninstall-Package MySql.Data.Entities

  2. Ajoutez une référence de projet à la dernière MySql.Data.Entity.EF6.dll à partir de votre chemin d'installation du connecteur MySql à l'adresse: C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5

13
Loc Huynh

Je viens de vivre la même situation lorsque j'ai essayé de configurer l'environnement Visual Studio Professional 2017 avec MySQL, ADO.NET (Database First) et EF6.

Remarque: veuillez suivre les étapes dans le même ordre.

  1. Désinstallez/supprimez "Connector/NET" et "MySQL pour Visual Studio" s’il est installé.

  2. Installez "MySQL pour Visual Studio" v2.0.5 CTP ( MySQL pour Visual Studio ) . Remarque: Installez MySQL pour Visual Studio avant Connector/NET.

  3. Installez "Connector/NET" v6.9.10 (/ Connector/Net ). https://i.stack.imgur.com/XOT1I.jpg Remarque: j'ai d'abord essayé d'utiliser Connector/NET v6.8, v6.10 et v8, mais aucun d'eux ne fonctionnait avec Visual Studio 2017. et ADO.Net. Vous pouvez trouver ici toutes les versions de connecteur et toutes les compatibilités avec les IDE de Visual Studio , mais cette liste est inexacte jusqu'à présent.

  4. Créez un nouveau projet Visual Studio Professional 2017.

  5. Téléchargez et installez "EntityFramework" v6.2.0 via NuGet en accédant à l’onglet Projet/Gérer les packages NuGet/Parcourir -> Entity Framework.

  6. Ajoutez des références à C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.dll Et C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.Entity.EF6.dll; Cliquez avec le bouton droit de la souris sur les références dans l’explorateur de solutions et sélectionnez le bouton Ajouter une référence/Navigation -> Parcourir. 

  7. Ajoutez les informations sur le fournisseur MySQL EF6 dans App.config sous les fournisseurs de structure d'entité comme suit:

<entityFramework>
       <providers>
         <provider invariantName="MySql.Data.MySqlClient"
              type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
       </providers>
</entityFramework>

  1. Reconstruisez le projet en cliquant sur l'onglet Construire/Reconstruire le nom du projet.

Et c'est tout. VS2017 est prêt à partir. J'espère que cela fonctionne pour tout le monde, comme cela a été le cas pour moi aujourd'hui.

Références:

  1. Impossible de créer un modèle de données d'entité - à l'aide de MySql et EF6

  2. Aucun fournisseur Entity Framework trouvé pour le fournisseur ADO.NET 'MySql.Data.MySqlClient'

60
Alfredo Rodriguez

VS 2015 a toujours ce bogue . Il est dû à une non concordance de version.

Sur mon système, j'avais MySQL Connector 6.9.6.
Émission de 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) . Rouvrez Visual Studio et l’assistant ne se bloque plus . Aucun redémarrage requis.

12
Lars Meldgård

J'ai pu résoudre ce problème en procédant comme suit:

  1. Ouvrez le programme d'installation MySQL et installez la dernière version de Connector/NET.
  2. Désinstallez/réinstallez les packages MySQL.Data. * De la dernière version dont les versions correspondent à la version du package Connector/NET récemment installé.
  3. Redémarrer Visual Studios
  4. Reconstruire la solution
4
user942620

Prendre des suggestions sur d'autres versions de NuGet à propos des versions… .. J'ai résolu ce problème en supprimant les .Data et Data.Entitiy.EF6 installés par Nuget.

Ensuite, faites un clic droit sur Références et recherchez:

C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll and C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dll

J'ai ensuite pu terminer l'assistant ADO.Net, avec les modèles .edmx.

4
Daniel Orlan

Je connais la solution.

Nuget installe la version Edge des packages MySql.Data. *, Alors que vous disposez probablement de la version précédente du connecteur (dans mon cas, les packages étaient v. 6.9.6 et Connector, 6.9.5). Cela arrive au point où vous avez une incompatibilité de version.

Sachez que si vous utilisezInstall-Package MySql.Data.Entitiesdans NuGet, vous obtiendrez une version encore plus ancienne comme 6.8.3. Vous devez donc ajouter les références vous-même et garder un œil sur lequel celle que vous essayez d’ajouter à votre solution.

3
Lucassith

J'ai eu le même problème en utilisant MySQL Connector 6.9.8.0. Bien que toutes mes versions correspondent, cela a encore échoué. J'avais installé une nouvelle version de Visual Studio APRÈS le connecteur MySQL (de 2010 à 2013). Pour moi, la solution consistait à désinstaller MySQL Connector for NET, puis à le réinstaller (version identique exacte). Puis redémarrez Visual Studio. 

On dirait que ceci est une autre version du même problème.

2
Andy

Vous pouvez faire cette solution:

  1. Ajouter un nouveau modèle EF vide.
  2. Dans emdx design right, cliquez sur et mettez à jour le modèle à partir de la base de données.
  3. choisissez votre base de données et le modèle sera généré.

C'est un travail pour moi :)

1

J'ai changé mon fichier web.config depuis:

<fournisseur invariantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version = 8.0.11.0, Culture = neutre, PublicKeyToken = c5687fc8896c".

À:

<provider invariantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"> </ fournisseur>

0
Geovanny López

Ceci est pour une application ASP.NET MVC, qui n'a pas de fichier app.config . Je ne vais pas raconter les tentatives infructueuses, mais ce qui a fonctionné pour moi a été le suivant: -

  • Avec VS not running, téléchargez et installez "MySQL pour Visual Studio 2.0.5" - la version la plus récente au moment de la rédaction.
  • Démarrez VS2017 et désinstallez les packages NuGet "MySql.Data.Entity" et "MySql.Data", s'ils ont déjà été installés dans VS2017.
  • Téléchargez et installez le dernier connecteur MySql/NET en utilisant les liens ci-dessus (version 8.0.13 au moment de la rédaction).
  • Dans votre projet, ajoutez des références aux dll "MySql.Data.dll" et "MySql.Data.EntityFramework.dll" comme décrit ci-dessus par Lopez93, mais N.B. le "MySql.Data.Entity.EF6.dll" mentionné n'existait pas dans la version 8.0.13, mais "MySql.Data.EntityFramework.dll".
  • Maintenant, éditez le fichier web.config et assurez-vous que dans la section, il y a cette ligne

<provider invariantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data. EntityFramework ">

  • Supprimez ou commentez toute autre ligne '<fournisseur invariantName = "MySql.Data.MySqlClient" ...'.

  • Reconstruisez le projet.

Essayez d'utiliser à nouveau l'assistant.

Pour moi cela a fonctionné.

Bonne chance!

0
jetbadger

autre chose à essayer:

---> Installez entityframework 6.2.0 via nuget.

---> Vérifiez dans votre fichier web.config/app.config que vous avez le fournisseur System.Data.SqlServerCe.4.0. s'il n'est pas installé, installez-le via nuget, exactement de la même version que l'entité framework précédemment installée (6.2.0 dans ce cas).

---> puis ajoutez les références: (dans ce cas, à partir du connecteur/version NET 6.9.10) C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll et C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dll et reconstruit.

---> essayez également d'ajouter ce fournisseur: <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> reconstruire, à nouveau.

---> et enfin, essayez d'ajouter le fichier .edmx avec une nouvelle connexion.

Cela a fonctionné dans mon cas où j'ai installé VS2017 et MySQL dans un tout nouvel ordinateur portable, et j'ai eu le même problème.

0
Lopez93