Mono Entity Framework 6 MySQL
J'ai développé un projet avec Entity Framework 6 qui utilisent un MySQL
comme base de données.. Sur mon système windows le projet de travail. Maintenant, j'ai essayé de déplacer ce projet sur ma machine linux.
Afin d'exécuter le projet, j'ai ajouté le MySQL
dll dans le GAC et à la config de la machine. Tous besoin de dll sont également situés dans le dossier du projet. Lorsque le Cadre de l'Entité d'accès à la base de données, j'obtiens l'erreur suivante:
System.Configuration.ConfigurationErrorsException: Failed to find or load the registered .Net Framework Data Provider.
at System.Data.Common.DbProviderFactories.GetFactory (System.Data.DataRow providerRow) [0x00000] in <filename unknown>:0
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="CashDeskServerContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;
port=3306;database=ServerContext;uid=root;password=password;Convert Zero Datetime=True"/>
<add name="AuditLogContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;
port=3306;database=AuditLogContext;uid=root;password=password;Convert Zero Datetime=True"/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices,
MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices,
EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
Des idées?
THX
Michael
Je ne suis pas sûr que les Mono support complet EF 6. Mais en général c'est un problème de config ou de problème de version. Pouvez-vous nous montrer votre Application.Config pour voir la configuration?
Bonjour Alberto, j'ai ajouté de l'application.config à ma question...
Notez que votre référencement EntityFramework.SqlServer qui n'est normalement pas pris en charge dans le Mono. Supprimer cette partie, veuillez
EF6 doit travailler sur Mono. J'ai essayé une version pré-EF6 version et a été en mesure de le faire fonctionner (blog.3d-logic.com/2013/04/14/entity-framework-6-on-mono). Les questions que j'ai frappé devrait maintenant être résolu.
Bonjour Alberto, j'ai ajouté de l'application.config à ma question...
Notez que votre référencement EntityFramework.SqlServer qui n'est normalement pas pris en charge dans le Mono. Supprimer cette partie, veuillez
EF6 doit travailler sur Mono. J'ai essayé une version pré-EF6 version et a été en mesure de le faire fonctionner (blog.3d-logic.com/2013/04/14/entity-framework-6-on-mono). Les questions que j'ai frappé devrait maintenant être résolu.
OriginalL'auteur Michael | 2014-03-03
Vous devez vous connecter pour publier un commentaire.
C'est parce que vous ne semblez pas avoir de MySql ADO.NET fournisseur de configuré. Jetez un oeil à mon article sur le blog sur l'utilisation de EF6 et MySql sur Mono, qui montre comment résoudre ce problème précis (notez que j'ai écrit ce post pour une pré-version EF6 version et les questions que j'ai frappé sur la route, doit être maintenant corrigé). Notez que dans le post que j'ai utilisé DevArt MySql fournisseur de sorte que vous aurez à trouver des entrées pour l'utilisation de votre fournisseur. Jetez aussi un oeil à ce stackoverflow post - La coutume .NET Fournisseurs de Données - qui fournit des détails sur l'enregistrement d'ADO.NET les fournisseurs (qui vous intéresse le plus DbProviderFactories parce que c'est ce qui vous manque)
C'est une autre question - démarrer un nouveau thread avec plus de détails. Je ne peux que soupçonner que vous avez utilisé plusieurs
Column
attributs avec la même valeur de l'Indice sur la même table.OriginalL'auteur Pawel