2011-05-06 56 views
5

Estoy creando mi primer sitio web asp.net MVC (la versión 3).ASP.Net MVC 3 & System.Data.Entity?

Estoy usando Entity Framework para obtener datos de mi base de datos, así que por ahora, tengo una lista de películas en mi base de datos.

Estoy tratando de hacer una página que muestre la lista de estas películas.

Entonces, el controlador parece estar bien, devuelve una Vista (IEnumerable).

En la vista, que especifica el tipo de mi modelo:

@Model IEnumerable

película es una clase generada con una plantilla T4 de mi edmx, por lo que se heriting de EntityObject.

Ahora, cuando trato de mostrar mi página, que estoy recibiendo un error, me indica que tengo que importar System.Data.Entity:

Server Error in '/' Application.

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0012: Le type 'System.Data.Objects.DataClasses.EntityObject' est défini dans un assembly qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Source Error:

Line 27: Line 28: Line 29:
public class _Page_Views_Movie_List_cshtml : System.Web.Mvc.WebViewPage> { Line 30: Line 31: #line hidden

Source File: c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\93402ec0\8f8e48f4\App_Web_list.cshtml.9612c299.pwpwk-k5.0.cs Line: 29

Pero, he REFERENCIA Esta DLL en mi proyecto y tengo el uso correspondiente en mi controlador.

Me trataron de poner esta usando en el cshtml: System.Data.Entity @using pero no compila con (no puede encontrar la entidad en los System.Data)

Entonces, ¿qué debo hacer?

todos mis proyectos son .Net 4 (no el perfil de cliente)

+0

que dll refirió - System.Data o System.Data.Entity? –

+0

Los dos – J4N

+0

Por amor a todos los dioses de la programación, desinstale los paquetes de idioma de .NET Framework para los mensajes de excepción en inglés. –

Respuesta

1

dos cosas - 1. cambiar su definición del modelo como fue mencionado por Muhammed - su más estándar de esa manera también 2. incluir una referencia a: C: \ archivos de programa \ referencia Asambleas \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Data.Entity.dll

O use las plantillas de POCO Entity.Net en cualquier proyecto en el que estén sus entidades para liberarlo de la dependencia de esa biblioteca en su proyecto de mvc.

+0

he usado un generador de entidad POCO, se resolvió mi problema – J4N

0

Por favor, intente especificar enumeración escrito como

@model IEnumerable<MyEntityObjectType> 
+0

he intentado pero no cambia nada – J4N

3

añadir la siguiente línea a su web.config

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

Traté: pero no cambia nada – J4N

+0

la adición de esta referencia permite especificar @using System.Data.Entity en su opinión, lo que le permite a las entidades de referencia –

1

Para Asp.Net MVC 2 Y 3

<compilation debug="true" targetFramework="4.0" > 
<assemblies> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
    ... 
</assemblies> 

para ASP.NET MVC 4 (.NET4.5) el cambio de

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 

Para

<system.web> 
    <compilation debug="true" targetFramework="4.0" > 
     <assemblies> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
     </assemblies> 
    </compilation>