Utilizo .NET MySQL Connector con Entity Framework 4, y todo funcionó muy bien, pero quería empaquetar los archivos DLL del cliente MySQL con mi aplicación cuando se implementa en los servidores, por lo que no tenemos preocuparse por la instalación de MySQL en cada servidor, cada aplicación tendrá la copia correcta que necesita..NET MySQL Connector Conflicting DbProviderFactories
Para hacer esto posible, me aseguré de las referencias MySQL tenían "Copia local" establecida por lo que se copian en las carpetas bin y ha añadido lo siguiente a mi 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, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Esto funciona y Puedo implementar la aplicación sin instalar mysql en el servidor remoto, pero ahora tengo un problema en mi máquina de desarrollo local (donde I do tengo el conector MySQL instalado), y recibo este error cuando EF intenta conectar:
La columna 'InvariantName' está limitada a ser única. Valor 'MySql.Data.MySqlClient' ya está presente.
Si comento el XML que agregué arriba en el app.config, el error desaparece. Esto es probable porque el mismo controlador está instalado en el sistema y está en machine.config.
¿Cuál es la solución? Preferiría no tener que comentar y descomentar manualmente la línea en función del sistema para el que creo la aplicación.
Funciona perfectamente tanto en el servidor como en la máquina local. ¡Gracias! – Kekoa
Estaba teniendo este problema también, y esto funcionó como un encanto. Pensé que sería algo como esto, pero no pensé en probar la palabra clave invariante. –
¡Esto también funcionó para mí! Gracias una tonelada :) – DigitalRayne