una - obtener datos mysql php
No se puede usar una conexión MySQL para el marco de entidades 6 (9)
¡SOLUCIÓN! 2017
Instalar el paquete Nuget:
Install-Package EntityFramework
Install-Package MySql.Data.Entity -Version 6.9.9
Instalar MySQL para Visual Studio 1.2.6 - https://dev.mysql.com/downloads/windows/visualstudio/
Cambios en Web.Config
<EntityFramework>
a:
<EntityFramework codeConfigurationType = "MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
Agregue (** su información **):
<connectionStrings>
<add name="**YourContextName**" connectionString="server=**xxx.xxx.xxx.xxx**;port=3306;user id=**your user**;password=**your password**;database=**your database**" providerName="MySql.Data.MySqlClient" /></connectionStrings>
Reiniciar Visual Studio
Mi configuración:
- Comunidad Microsoft Visual Studio 2015
- Dot Net Framework 4.5.2
- Asp.Net MVC 5.2.3.0
- Servidor MySql 5.6
Estoy tratando de usar entity framework 6 con MySQL.
Instalé el plugin MySQL para Visual Studio 1.1.1 y MySQL .Net connector 6.8.3.
El problema es cuando trato de crear un nuevo modelo de Entidad ADO.NET, no puedo elegir MySQL para la conexión.
Pero si creo una conexión desde la herramienta de conexión en Visual Studio, puedo ver MySQL
Significa que la versión actualmente instalada no es compatible con entidad marco 6. ¿Cómo es posible después de que instalé el último conector y el complemento. ¿Hay algo más que hacer?
Gracias
EDITAR
Hice una nueva instalación de MySQL sin instalar el conector predeterminado y luego instalé el 6.8.3 y el complemento para Visual Studio.
Luego puedo ver la conexión que hice para mi modelo de entidad, pero cuando estoy a punto de elegir la versión de entidad, obtengo este mensaje.
¡Para mí reinstalar MySQL y usar la versión del conector instalado como referencia en Visual Studio funcionó!
Pasos:
- Reinstale las herramientas de MySQL con el último conector estable de MySQL para Windows.
Agregue estos 3 archivos como referencia en Visual Studio:
MySql.Data.dll
- MySql.Data.Entity.EF6.dll
MySql.Web.dll
Modificar siguiente Web.config de
<providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers>
A:
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
Asegúrese de que su nombre de usuario / contraseña / nombre de conexión sean correctos o que Visual Studio se bloquee. (Pasó conmigo)
¿Intentó instalar el último conector dot net para mi sql? http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html o http://dev.mysql.com/downloads/connector/net/ según su contexto.
Mi estaba enfrentando el mismo problema.
Hice lo siguiente:
1. Instalar MySQL para Visual Studio desde:
https://dev.mysql.com/downloads/windows/visualstudio/
2. Instalar MySql.Data en mi proyecto
3. Instalar MySql.Data.EntityFramework en mi proyecto
No estoy seguro si esto sigue siendo un problema para ustedes, muchachos, pero ninguna de las soluciones anteriores funcionó para mí ... hasta que encontré esto:
http://www.microsoft.com/en-us/download/details.aspx?id=40762
Después de aplicar los parches (tanto para VS2013 como para VS2012), conseguí que VS2013 funcionara maravillosamente con EF6 para MySql.
PD. Versiones del paquete instaladas (desde NuGet):
EntityFramework - 6.1.3 (10/03/2015)
MySqlData - 6.9.6 (24/02/2015)
MySql.Data.Entity - 6.9.6 (24/02/2015)
MySql.Web - 6.9.6 (24/02/2015)
NuGet hace el trabajo correctamente y actualiza Web.Config en consecuencia, completando la sección "entityFramework" con lo que sea necesario.
Para VS2013, simplemente va de "No funciona para nada" a "Totalmente funcional". Para VS2012, hace posible usar "Code First from Database", que no estaba disponible antes de aplicar el parche.
Ojalá hubiera encontrado esto hace unos 10 días, así que espero que esto pueda ser de alguna ayuda.
Para su información, para todos los que usan una solución multiproyecto, si no puede ejecutar su proyecto GUI debido a problemas para encontrar / cargar el proveedor MySql EF6, como:
No se ha encontrado ningún proveedor de Entity Framework para el proveedor ADO.NET con el nombre invariable ''MySql.Data. (...)''. Asegúrese de que el proveedor esté registrado en la sección ''entityFramework'' del archivo de configuración de la aplicación. Consulte http://go.microsoft.com/fwlink/?LinkId=260882 para obtener más información.
por favor mira esta pregunta
Aunque se trata de SqlServer, el problema podría ser el mismo: si solo uno de tus proyectos maneja las operaciones de DB, entonces lo más probable es que hayas agregado Nuget References a MySql.Data
y MySql.Data.Entity
y EntityFramework
a ese proyecto. Dado que MySql.Data
y EntityFramework
son utilizados directamente por el código, el proceso de compilación es lo suficientemente inteligente como para copiarlos en la carpeta de salida y copiarlo por segunda vez a la carpeta de salida del proyecto de la GUI.
Sin embargo, dado que MySql.Data.Entity
se refiere al archivo de texto app.config
o web.config
, el proceso de compilación cree que esta referencia no es necesaria (¡ el código no la usa!) Y la borra, y usted no verá MySql.Data.Entity.EF6.dll
en el directorio de salida del proyecto de la GUI, y esto hace que el proyecto de la GUI no pueda encontrar ese proveedor.
Por lo tanto, hay dos opciones: asegúrese de que algo copie esa DLL como parte del proceso de compilación (es decir, evento de compilación pre / post, generador de paquetes de despliegue, tarea de CI, tarea humana, lo que sea) o simplemente haga referencia directa al ensamblaje de su Proyecto DB / EF6.
encontré esto en mySQL Bucktracker
Pruebe la siguiente solución ...
Ejecute el siguiente comando en MySQL DB y luego intente si esto funciona.
establecer global optimizer_switch = ''derived_merge = off''
También agregué los siguientes conjuntos:
- EF6 como paquete Nuget
- MySQL.Data
- MySql.Data.Entity.EF6.dll
- MySQL.Web (no estoy seguro si es realmente necesario)
ÚLTIMA EDICIÓN
El error ha sido reparado.
Comentario de Chris:
2015-11-07 y ahora puede hacer que todo funcione sin editar ningún archivo ni hacer cosas raras. Use el instalador de MySQL para Windows e incluya el soporte de Visual Studio y el último Connector.Net. Asegúrese de actualizar después de la instalación y obtendrá la última de cada uno (1.2.5 y 6.9.8). Use NuGet para instalar EntityFramework, MySql.Data y MySql.Data.Entity. Finalmente, construyó y disfruta de bondad de ingeniería inversa primero en código al agregar un modelo de entidad Ado.Net.
Respuesta original
Descubrí que es un error de MySQL.
Here''s el enlace que explica un workarround.
En su máquina donde está instalado VS 2013, complemento de VS (1.1.3 GA) y conector / red
Cierre todas las instancias VS antes de seguir los pasos.
En una ventana del Explorador de Windows, vaya a esta ruta o donde haya instalado Connector / net binaries
C: / Archivos de programa (x86) / MySQL / MySQL Connector Net 6.8.3 / Assemblies / v4.5 /
Copia el archivo:
MySql.Data.Entity.EF6.dll
Y pégalo en esta carpeta
C: / Archivos de programa (x86) / Microsoft Visual Studio 12.0 / Common7 / IDE / PrivateAssemblies
Si le pide que lo sobrescriba, hágalo.
Necesitará derechos de administrador para sobrescribir el archivo.
Entonces puede intentar de nuevo generar la secuencia de comandos para su modelo.
Es importante que tenga instalada la versión 1.1.3 del complemento VS ya que esta solución alternativa es para eso.
Lamentablemente, no funciona para mí, por lo que me degradaron a entidad marco 5 hasta que solucionen esto.
EDITAR
Finalmente, funciona ahora.
Tuve que agregar los 3 siguientes archivos DLL:
- C: / Archivos de programa (x86) / MySQL / MySQL Connector Net 6.8.3 / Assemblies / v4.5 / MySql.Data.dll
- C: / Archivos de programa (x86) / MySQL / MySQL Connector Net 6.8.3 / Assemblies / v4.5 / MySql.Data.Entity.EF6.dll
- C: / Archivos de programa (x86) / MySQL / MySQL Connector Net 6.8.3 / Assemblies / v4.5 / MySql.Web.dll
Luego cambié la parte EntityFramework en la configuración web a:
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>
No olvides RECONSTRUIR y deberías poder crear un modelo de entidad marco 6 con MySQL.
IMPORTANTE
Asegúrese de haber instalado MySQL para visual studio 1.1.3 y MySQL connector .net 6.8.3
2015-11-07 Actualización
Los errores se corrigieron y ahora puede hacer que todo funcione sin editar ningún archivo o incluso hacer referencia a ensamblajes fuera de NuGet. Simplemente tiene que instalar lo correcto y agregar los paquetes NuGet correctos. Así es cómo:
Use el instalador de MySQL para Windows e incluya el soporte de Visual Studio y el último Connector.Net. Asegúrese de actualizar después de la instalación y obtendrá la última de cada uno (1.2.5 y 6.9.8).
Luego, use NuGet para instalar EntityFramework, MySql.Data y MySql.Data.Entity.
Finalmente, construya y disfrute de la bondad de la ingeniería inversa del primer código agregando un modelo de entidad Ado.Net.