J'ai une solution asp.net utilisant entity framework 6 to mysql server.
maintenant je dois travailler sur cette solution sur une nouvelle machine,
mais j'ai quelques problèmes:
1) lors de la construction de la solution, l'erreur suivante apparaît: "Le fournisseur ADO.NET avec le nom invariant 'MySql.Data.MySqlClient' n'est pas enregistré dans le fichier de configuration de l'ordinateur ou de l'application".
App.config:
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</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.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
2) lors de l'ouverture du fichier model.edmx, un message s'affiche:
"Le concepteur de mode d'entité ne parvient pas à afficher le fichier demandé".
J'ai installé sur la machine:
1) connecteur mysql/net 6.9.9
2) mysql pour visual studio 1.2.6
3) mysql connector odbc 5.3.6.
que puis-je faire?
J'ai suivi la plupart des solutions suggérées sur Internet mais, malheureusement, tout a échoué. Le problème se produit car Visual Studio manque de connecteur MySql et je l'ai résolu en installant mysql-connector-net-7.0.4 ( https://downloads.mysql.com/archives/c-net/ )
Les solutions ci-dessus ne fonctionnaient pas pour moi. Cependant, inspiré par cette réponse , j’ai pu résoudre ce problème en supprimant les informations de version sous la balise entityFramework
dans mon fichier Web.config
:
<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.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
</provider>
</providers>
</entityFramework>
devient:
<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">
</provider>
</providers>
</entityFramework>
ETA: Comme indiqué dans ce suivi , il peut également être nécessaire de modifier manuellement la version de MySql.Data
dans le fichier Web.config
:
<dependentAssembly>
<assemblyIdentity name="MySql.Data" culture="neutral" publicKeyToken="c5687fc88969c44d" />
<bindingRedirect oldVersion="0.0.0.0-6.9.9.0" newVersion="6.9.9.0" />
</dependentAssembly>
Afin de résoudre ce problème, en plus des modifications décrites dans ce message , j'ai également dû modifier manuellement la version de MySql.Data
dans web.config
comme suit:
<dependentAssembly>
<assemblyIdentity name="MySql.Data" culture="neutral" publicKeyToken="c5687fc88969c44d" />
<bindingRedirect oldVersion="0.0.0.0-6.9.9.0" newVersion="6.9.9.0" />
</dependentAssembly>
Supprimez l'ancienne référence de MySql.Data.Entity.EF6 de la liste de références. Réinstallez via le gestionnaire de paquets Nuget et cela fonctionnera /
Cela fonctionne pour moi avec la section suivante dans app.config:
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
</DbProviderFactories>
</system.data>