ASP.Net MVC 3& System.Data.Entity的?

时间:2011-05-06 14:42:12

标签: c# .net exception asp.net-mvc-3 entity-framework-4

我正在创建我的第一个asp.net MVC网站(版本3)。

我正在使用Entity Framework从我的数据库中获取数据,所以现在我的数据库中有一个电影列表。

我正在尝试显示一个显示这些电影列表的页面。

因此,控制器似乎没问题,它返回一个View(IEnumerable)。

在视图中,我指定了我的模型类型:

@model IEnumerable

Movie是一个使用我的edmx中的T4模板生成的类,所以它是从EntityObject中获取的。

现在,当我尝试显示我的页面时,我收到一个错误,表明我要导入System.Data.Entity:

  应用程序中的服务器错误。

     

编译错误

     

描述:期间发生错误   编译所需的资源   为此请求提供服务。请查阅   以下具体错误详情   并修改您的源代码   适当。

     

编译器错误消息:CS0012:Le   类型   'System.Data.Objects.DataClasses.EntityObject'   estdéfinidansun assembly qui n'est   pasréférencé。 Vous devez ajouter une   référenceàl'asseding   'System.Data.Entity,Version = 4.0.0.0,   文化=中性,   公钥= b77a5c561934e089' 。

     

来源错误:

     

第27行:第28行:第29行:
  公共课   _Page_Views_Movie_List_cshtml:System.Web.Mvc.WebViewPage>   {第30行:第31行:#line   隐藏

     

源文件:   C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \临时   ASP.NET   文件\ ROOT \ 93402ec0 \ 8f8e48f4 \ App_Web_list.cshtml.9612c299.pwpwk,k5.0.cs   行:29

但是,我在我的项目中引用了这个dll,并且我在我的控制器中使用了相应的。

我试图在cshtml中使用它: @using System.Data.Entity但它没有编译(在System.Data中找不到实体)

那我该怎么办?

我的所有项目都是.Net 4(不是客户资料)

4 个答案:

答案 0 :(得分:3)

将以下行添加到您的web.config

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

答案 1 :(得分:1)

两件事 - 1.如穆罕默德所提到的那样改变你的模型定义 - 这种方式也更为标准 2.包括对以下内容的引用: C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Data.Entity.dll

OR 在您的实体所在的任何项目中使用POCO Entity.Net模板,以免您在mvc项目中对该库的依赖。

答案 2 :(得分:1)

对于Asp.Net Mvc 2和3

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

对于ASP.NET MVC 4(.NET4.5)更改

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

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

答案 3 :(得分:0)

请尝试指定类型化的枚举,如

@model IEnumerable<MyEntityObjectType>