tutorial mvc framework first español c# entity-framework-6

c# - mvc - No se puede encontrar System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer



entity framework tutorial español c# pdf (8)

@ LeLong37

Tuve exactamente el mismo error que usted: "... No se ha encontrado ningún proveedor de Entity Framework para ''System.Data.SqlServerCe.4.0'' proveedor ADO.NET ..."

Lo resolví agregando una referencia a "EntityFramework.SqlServerCompact" from directory "packages / EntityFramework.SqlServerCompact.6.0.0-rc1 / lib / net40"

espero que esto ayude

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?


Agregué un screencast en Youtube describiendo esto y la solución en aproximadamente 6 minutos. Hice esto porque la solución provista por Fabrice no funciona cuando trabajas con Team Build, que tiene el mismo problema.


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:

EntityFramework EntityFramework.SqlServer

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

private readonly IMyRepository myRepository; public MyController(IMyRepository myRepository) { this.myRepository = myRepository; } public ActionResult Details(int id) { MyObject myObject = myRepository.FindById(id); return View(); }

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

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

EntityFramework.SqlServer

En mi web.config:

<configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections>

Y debajo de la etiqueta system.webServer cierre:

<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> </entityFramework>

Espero que esto sea de ayuda.


Estoy usando EF 4 y EF 6 dos proyectos diferentes en la misma solución.

Después de usar NuGet para EF 6.0, todas las referencias a EF 4 se eliminaron en mi proyecto de prueba. Tuve que eliminar EF6 del proyecto nuevamente y agregué referencias a System.Data.Entity para EF4.

Para acceder a los datos a través de EF6 en el proyecto de prueba, tuve que hacer referencia manualmente a EntityFramework.SqlServer.dll (4.5) y usé la recomendación de hackear (arriba).

No hubo necesidad de hacer ninguna alternancia en la aplicación .config de mi proyecto de prueba.

no

<section name="entityFramework" ...

y no

<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> ...


Lo que hiciste crea una referencia a EntityFramework.SqlServer.dll. Asegura que este ensamblaje se copie a 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)


Resolví el problema copiando los dos archivos.

EntityFramework.SqlServer.dll EntityFramework.SqlServer.xml

a la /bin .


Si tiene problemas con un sitio MVC nuevo de la plantilla: 1) Desinstale Microsoft.ASPNet.Identity.EntityFramework (le preguntará si desea desinstalar Entity Framework: hágalo.) 2) Instale Entity Framework 3) Reinstale Microsoft.ASPNET.Identity.EntityFramework

Debería estar trabajando ahora.


El problema es la referencia "EntityFramework.SqlServer".

En mi proyecto, cuando agregué Entity Framework 6.0.1 utilizando NuGet en la capa de acceso a datos, obtuve el mismo error en el lado del cliente ya que el lado del cliente no tiene esa referencia.

Entonces, resolví el problema agregando esa referencia en el lado del cliente también.