Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro de compatibilidade do provedor de banco de dados do Entity Framework


Parece que esses app.config linhas abaixo apontam diretamente para a fonte do problema:
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>

Isso significa que sua máquina tem uma versão anterior do MySQL Connector .NET instalada, que também faz referência ao arquivo de configuração (6.8.3.0), portanto, você precisa desinstalar a(s) versão(ões) anterior(es) do MySQL Connector .NET (também remover a string do provedor EF) primeiro. Em seguida, verifique as referências de MySql.Data.dll , MySql.Data.Entity.EF6.dll &MySql.Web.dll bibliotecas sendo referenciadas para a versão mais recente (6.9.9.0) e entityFramework seção em app.config deve ficar assim:
<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 invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
</entityFramework>

Depois, limpe e reconstrua o projeto.

NB:Você pode tentar substituir as bibliotecas MySQL em \Program Files\Microsoft Visual Studio [version number]\Common7\IDE\PrivateAssemblies com aqueles em \Program Files\MySQL\MySQL Connector Net 6.9.9\Assemblies\v4.5 se os assemblies da versão anterior ainda existirem.

Problema relacionado:

Conector MySQL com EF6 no Visual Studio 2013