2011-02-16 51 views
16

Estoy trabajando dentro de una Solución (un sitio web de bromas). La solución tiene 2 Proyectos:No se pudo cargar el archivo o ensamblado 'System.Data.Entity

  1. Modelo (C# biblioteca de clases)
  2. MVC 3 aplicación vacía

que estoy tratando de conseguir mi fin de enumerar las Bromas en la base de datos, pero tengo la siguiente error:

Could not load file or assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified

Como se puede ver en el mensaje de error, ya he añadido el System.Data.Entity para el web.config de la aplicación MVC 3.

¡No importa lo que haga, parece que no puedo solucionar el error! He agregado instrucciones de uso para la clase Entity, para HomeController y Index.cshtml.

Respuesta

49

Para utilizar un modelo de Entity Framework externa (incrustar en un archivo DLL por ejemplo) con ASP.NET MVC 3 debe:

  1. Añadir la siguiente referencia a su proyecto MVC: System.Data.Entity (versión 4.0.0.0, v4.0.30319 Runtime)
  2. Añadir la siguiente línea en su web.config

...

< compilation debug="true" targetFramework="4.0"> 

    <assemblies> 
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </assemblies> 
</compilation> 
+0

Gracias chicos. Eso funciono. ¿Qué no puedo votar tus respuestas? – Ciwan

+0

@ A.M. Agregué ambas referencias a mi proyecto pero todavía no puedo usar System.Data.Entity; no ve la clase DbContext. ¿Hay algo que debería mirar? Estoy usando Umbraco 7. Gracias – nickornotto

0

Asegúrese de haber hecho referencia al ensamblaje System.Data.Entity en su proyecto. No solo en la sección web.config assemblies sino también en los ensamblados a los que se hace referencia. También asegúrese de que System.Data.Entity, V4.0.0.0 esté presente en el GAC en el servidor en el que está ejecutando esta aplicación.

+1

cómo puedo asegurarme de que "System.Data.Entity, V4.0.0.0 está presente en el GAC en el servidor en el que está ejecutando esta aplicación" ... Creo que ese podría ser mi problema. – Ryan

+0

La versión 4.0.0.0 no está instalada en el GAC por el instalador. Está instalado en la carpeta "c: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5". Y, desafortunadamente, el compilador no lo copió en la carpeta de eliminación de contenido. –

3

Me estaba dando el mismo error, y fue porque el proyecto MVC3 utilizó Entity Framework 4.1, y mi modelo de dominio (en un proyecto de biblioteca de clase, misma solución) agarró 4.2 cuando agregué la referencia. Desinstalé EF de mi proyecto web, luego reinstalé, ahora ambos tienen 4.2 y están funcionando bien. Actualmente trabajando con el título Apress, Pro ASP.NET MVC Framework (Freeman).

7

Para resolver este error:

  • Ir a la sección de referencias en su proyecto
  • Haga clic en él y que vaya en Agregar referencia paquete de biblioteca.
  • de búsqueda en la pestaña de línea de marco entidad
  • obtendrá una gran cantidad de paquetes instalados si tienes conexión a Internet habilitado
  • paquete
  • Seleccionar EF4, y, por último, añadir que

Si tiene cualquier trabajo de marco de entidad instalado y obtendrá un error luego haga clic para agregar referencia y en la pestaña Examinar vaya a la siguiente ubicación:

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 

Seleccione para buscar System.Data.Entity.dll y luego añádalo. Esto resolverá este problema.

2

Otra forma de resolver esto es agregar el archivo edmx vacío (Add -> Class -> Data -> ADO.NET Entity Data Model) y eliminarlo después. No estoy seguro de qué hace el Asistente de Visual Studio, pero es un problema común en mi máquina y siempre lo soluciono de esa manera.

Cuestiones relacionadas