No se puede encontrar System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer

c# entity-framework-6

Pregunta

Estoy construyendo un DbContext desde un SqlConnection. Cuando lo uso, recibo el siguiente error:

El tipo de proveedor Entity Framework 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, Version = 6.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' para el 'System.Data.SqlClient' El proveedor de ADO.NET no pudo ser cargado.

Estoy usando 6.0.0-alpha2-11210.

Lo encontré raro ya que tengo una referencia hacia Entity.SqlServer y que logré 'arreglarlo' poniendo la siguiente línea de código antes de una consulta:

var patch_only = System.Data.Entity.SqlServer.SqlProviderServices.Instance;

¿Es un error de la versión alfa?

Respuesta aceptada

Espero no llegar tarde. Estoy usando ASP.NET MVC 4 y Entity Framework 6 alpha 3 y me encontré con un problema similar.

Tengo varios proyectos en mi solución. Los 2 proyectos principales son:

MyProject.Infrastructure.EntityFramework
MyProject.Web

En el primer proyecto configuraría todos mis repositorios, DbContext , etc. En este proyecto tengo 2 referencias:

MyProject.Infrastructure.EntityFramework
MyProject.Web

El segundo proyecto es mi sitio web. Utiliza los repositorios en el primer proyecto para devolver mis datos. Por ejemplo:

MyProject.Infrastructure.EntityFramework
MyProject.Web

Aquí es donde tuve mis problemas, llamando a FindById .

Todo lo que hice fue agregar la siguiente referencia a mi sitio web:

MyProject.Infrastructure.EntityFramework
MyProject.Web

En mi web.config:

MyProject.Infrastructure.EntityFramework
MyProject.Web

Y debajo de la etiqueta system.webServer cierre:

MyProject.Infrastructure.EntityFramework
MyProject.Web

Espero que esto sea de ayuda.


Respuesta popular

Lo que hiciste crea una referencia a EntityFramework.SqlServer.dll. Asegura que este ensamblaje se copie en la carpeta bin de proyectos usando su ensamblaje de acceso a datos.

Puede hacer lo mismo agregando algo como lo siguiente en algún lugar de su conjunto de acceso a datos:

Type _Hack = typeof(System.Data.Entity.SqlServer.SqlProviderServices)



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué