Mysql
 sql >> Database >  >> RDS >> Mysql

Errore di compatibilità del provider di database di Entity Framework

Sembra che questi app.config le righe sottostanti puntano direttamente alla fonte del 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>

Ciò significa che sulla macchina è installata una versione precedente di MySQL Connector .NET che fa riferimento anche all'interno del file di configurazione (6.8.3.0), quindi è necessario disinstallare prima le versioni precedenti di MySQL Connector .NET (rimuovere anche la stringa del provider EF). Quindi, assicurati i riferimenti di MySql.Data.dll , MySql.Data.Entity.EF6.dll &MySql.Web.dll librerie referenziate all'ultima versione (6.9.9.0) e entityFramework la sezione in app.config dovrebbe essere simile a questa:

<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>

Successivamente, pulisci e ricostruisci il progetto.

NB:puoi provare a sostituire le librerie MySQL in \Program Files\Microsoft Visual Studio [version number]\Common7\IDE\PrivateAssemblies con quelli in \Program Files\MySQL\MySQL Connector Net 6.9.9\Assemblies\v4.5 se esistono ancora assembly di versioni precedenti.

Problema correlato:

MySQL Connector con EF6 in Visual Studio 2013