无法加载文件或程序集'System.Data.Entity

时间:2011-02-16 19:36:31

标签: asp.net-mvc-3

我在一个解决方案(一个笑话网站)中工作。该解决方案有2个项目:

  1. 模型(C#类库)
  2. MVC 3空应用
  3. 我试图让我的视图列出数据库中的笑话,但是我收到以下错误:

      

    无法加载文件或程序集'System.Data.Entity,Version = 4.0.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个   依赖。系统找不到指定的文件

    从错误消息中可以看出,我已经将System.Data.Entity添加到MVC 3应用程序的web.config中。

    无论我做什么,我似乎无法修复错误!我已经为Entity类添加了using语句,HomeController和Index.cshtml。

5 个答案:

答案 0 :(得分:49)

要在ASP.NET MVC 3中使用外部实体框架模型(例如嵌入DLL),您必须:

  1. 将以下引用添加到MVC项目中: System.Data.Entity(版本4.0.0.0,运行时版本v4.0.30319)
  2. 在web.config中添加以下行
  3. ...

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

答案 1 :(得分:7)

解决此错误:

  • 转到项目中的参考部分
  • 右键单击它,然后再添加库包引用。
  • 在在线标签中搜索实体框架
  • 如果您启用了互联网连接,您将获得许多已安装的软件包
  • 选择EF4包,最后添加

如果您安装了任何实体框架工作并且收到错误,请单击“添加参考”,然后在“浏览”选项卡中转到以下位置:

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

选择查找System.Data.Entity.dll然后添加它。这将解决此问题。

答案 2 :(得分:3)

我得到了同样的错误,这是因为MVC3项目使用了Entity Framework 4.1,而我的域模型(在类库项目中,相同的解决方案)在我添加引用时抓住了4.2。 我从我的Web项目卸载EF,然后重新安装,现在都有4.2并且工作正常。 目前正在使用Apress标题,Pro ASP.NET MVC Framework(Freeman)。

答案 3 :(得分:2)

解决此问题的另一种方法是添加空的edmx文件(Add -> Class -> Data -> ADO.NET Entity Data Model)并在之后删除它。 我不确定Visual Studio向导的功能,但它在我的机器上是一个常见问题,而且我总是这样修复它。

答案 4 :(得分:0)

确保您在项目中引用了System.Data.Entity程序集。不仅在web.config assemblies部分,而且还有那些被引用的程序集。还要确保运行此应用程序的服务器上的GAC中存在System.Data.Entity,V4.0.0.0。