Entity Framework和MVC应用程序中的奇怪编译错误

时间:2010-07-10 13:44:56

标签: asp.net asp.net-mvc

我刚刚创建了一个新的MVC 2应用程序,它引用了实体模型库和服务库,并且所有编译都运行良好而不运行应用程序,但是当我尝试运行它时,我得到以下运行时错误“

  

编译器错误消息:CS0012:类型“System.Data.Objects.DataClasses.EntityObject”在未引用的程序集中定义。您必须添加对程序集'System.Data.Entity,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。

我已经多次检查了几次(例如Umpteen * n),引用的程序集在所有三个项目中都被重新启用。如果不是,WTF会不会出现构建错误?

6 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:7)

刚碰到这个。基本上,您需要在System.Data.Entity中添加对web.config的引用(并且您已将dll添加为项目的参考)

.NET3.5

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

.NET4

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

答案 2 :(得分:2)

答案 3 :(得分:1)

尝试在当前项目中添加System.Data.Entity的引用,这是错误的。

答案 4 :(得分:0)

就我而言,我的网络项目(针对.net v4.5)依赖于另一个包含EDMX模型的项目(目标是.net v4.0)。

一旦我将依赖项目升级到目标.net 4.5并重建了这个错误就消失了。

答案 5 :(得分:0)

关闭Visual Studio并再次重新打开它就足以解决问题了。作为一个注释,我最近对edmx模型进行了更改。