2011-05-06 5 views
5

Je crée mon premier site web asp.net MVC (la version 3). J'utilise Entity Framework pour obtenir des données de ma base de données, donc pour l'instant, j'ai une liste de films dans ma base de données.ASP.Net MVC 3 & System.Data.Entity?

J'essaye de faire une page qui affiche la liste de ces films. Ainsi, le contrôleur semble être OK, il renvoie une vue (IEnumerable).

Dans la vue, je spécifier le type de mon modèle:

@model IEnumerable

film est une classe générée avec un modèle T4 de mon edmx, il est donc heriting de EntityObject.

Maintenant, lorsque je tente d'afficher ma page, je reçois une erreur, me indiquant que j'ai importer 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

Mais, je l'ai référencé ce dll dans mon projet et j'ai l'utilisation correspondante dans mon contrôleur.

J'ai essayé de mettre cela en utilisant dans le cshtml: @using System.Data.Entity mais il ne compilent pas avec (ne peut pas trouver dans l'entité System.Data)

Alors, que dois-je faire?

tous mes projets sont .Net 4 (pas le profil client)

+0

quel dll avez-vous ref - System.Data ou System.Data.Entity? –

+0

Les deux d'entre eux – J4N

+0

Pour l'amour de tous les dieux de programmation, désinstallez vos packs linguistiques .NET Framework pour les messages d'exception en anglais. –

Répondre

1

deux choses - 1. Changez votre définition du modèle comme cela a été mentionné par Muhammed - son plus standard de cette façon aussi 2. inclure une référence à: C: \ Program Files \ référence Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Data.Entity.dll

OU utilisez les modèles POCO Entity.Net dans les projets de vos entités pour vous libérer de la dépendance de cette bibliothèque dans votre projet mvc.

+0

j'ai utilisé un générateur d'entité POCO, résolu mon problème – J4N

0

S'il vous plaît essayez de spécifier l'énumération tapé comme

@model IEnumerable<MyEntityObjectType> 
+0

J'ai essayé, mais ça ne change rien – J4N

3

ajoutez la ligne suivante à votre web.config

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

j'ai essayé: mais il ne change rien – J4N

+0

L'ajout de cette référence permet de spécifier @using System.Data.Entity à votre avis, ce qui vous permet aux entités de référence –

1

Pour Asp.Net Mvc 2 et 3

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

Pour ASP.NET MVC 4 (.NET4.5) changement de

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

Pour

<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>