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

Pro*_*ofK 4 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会不会出现构建错误?

İbr*_*lük 8

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

<system.web>
     <compilation debug="true" targetFramework="4.0" />
 ...
Run Code Online (Sandbox Code Playgroud)

 <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>
Run Code Online (Sandbox Code Playgroud)


gid*_*eon 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>
Run Code Online (Sandbox Code Playgroud)

用于.NET4:

<assemblies>
 ..........
   <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral,
           PublicKeyToken=b77a5c561934e089" />
</assemblies>
Run Code Online (Sandbox Code Playgroud)