sql >> Base de Datos >  >> RDS >> Mysql

No se puede conectar a mysql desde visual studio 2015

Para que VS 2015 se conecte a MySql, debe usar una versión posterior de las bibliotecas de MySql. Si bien parece una respuesta bastante simple, con toda honestidad me he encontrado con varios problemas en el camino. Con eso en mente, voy a escribir el proceso 1 que me ha funcionado consistentemente en cuanto a hacer que EF funcione con MySql y VS2015. Entonces, sin más preámbulos, estos son los pasos que he estado tomando para que esto funcione.

1) Asegúrese de que la instalación del conector MySql esté actualizada

2) Crea tu proyecto web

3) Abrir Nuget

4) Instalar Entity Framework

5) Buscar MySql

6) Instalar MySql.Data

7) Instalar MySql.Data.Entity

8) Instalar MySql.Data.Entities

9) Instalar MySql.Web

10) Vaya a las referencias del proyecto y elimine MySql.Data.Entity.EF6

11) Verifique las versiones de las bibliotecas MySql.Data y MySql.Web. Si están por debajo de 6.9.6, bórrelos también

12) Agregue una nueva referencia navegando hasta la ubicación de instalación del conector mysql para su versión de .NET framework (la mía es C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5) y tomando MySql.Data.Entity.EF6.dll (mi versión es 6.9.6, téngalo en cuenta cuando cambiemos web.config más adelante)

13) Si las otras bibliotecas también eran versiones anteriores, agregue referencias a ellas navegando a la carpeta de paquetes en su solución y tomando los archivos de sus respectivas carpetas. Normalmente no tengo que hacer esto.

14) Ahora será necesario editar Web.config. El primer paso es reemplazar la sección del marco de la entidad con este código (cambie el número de versión a su versión actual). Tenga en cuenta que encontré este fragmento en la web hace un par de semanas y no tengo el enlace original. Me disculpo con el original. cartel de esta información).

<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.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>

15) Asegúrese de que su sección DbProviderFactories coincida

<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.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>

16) Guardar y construir

No estoy seguro de cuántos de estos pasos son realmente necesarios, pero después de obtenerlo una vez, tuve que hacer algo de trabajo y no tuve tiempo de reducir más las cosas. Con suerte, eso te ayudará a moverte.

PD Si después de todo eso, pasa por el asistente y simplemente desaparece antes de que le muestre las tablas en la base de datos para crear entidades, entonces podría ser uno de los tres problemas con los que me he encontrado en el camino. No se puede contactar con el servidor de la base de datos. El usuario no tiene los permisos necesarios en la base de datos. La versión incorrecta de MySql.Data.Entity.EF6 se agregó como referencia o el número de versión es incorrecto en web.config. Si tomo este archivo del directorio de paquetes de mi solución, a menudo me encuentro con este problema de asistente abortado sin mensaje de error. Tomarlo del directorio de instalación de MySql siempre me ha funcionado bien.