为什么我的项目中同时存在EntityFramework和System.Data.Entity程序集?

时间:2012-11-09 18:39:33

标签: .net entity-framework visual-studio-2012

我刚刚打开VS 2012并创建了一个类库项目。之后,我在我的解决方案中添加了一个新的ADO.NET Entity Data Model项。

我注意到有一个名为EntityFramework 5.0的程序集和另一个名为System.Data.Entity 4.0的程序集。不应该只是一个吗?

作为一个奖励问题,当我点击该文件时,设计师崩溃了:

Error   2   Error 6039: warning CS1701: Assuming assembly reference 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' matches 'System.Data.Entity, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', you may need to supply runtime policy
c:\Users\andre_pena\AppData\Local\Temp\5srvr0ge.0.cs(465,29) : error CS1061: 'System.Data.Metadata.Edm.EdmFunction' does not contain a definition for 'IsComposableAttribute' and no extension method 'IsComposableAttribute' accepting a first argument of type 'System.Data.Metadata.Edm.EdmFunction' could be found (are you missing a using directive or an assembly reference?)    c:\users\andre_pena\documents\visual studio 2012\Projects\ClassLibrary2\ClassLibrary2\Model1.edmx   1   1   ClassLibrary2

我的系统一切正常吗?两个文件的存在是否正常?为什么我会收到此错误?

2 个答案:

答案 0 :(得分:6)

您应该拥有两个程序集:

EntityFramework.dll (有DbContext API,代码优先)

System.Data.Entity.dll (具有ObjectContext和DbContext API,新功能)

需要两个程序集才能允许Entity Framework团队在不等待.NET Framework的下一个正式版本的情况下发布更新。

.NET 4.5支持

EdmFunction.IsComposableAttribute,因此请检查您的版本 的 System.Data.Entity.dll

enter image description here

并在此处查看详细答案:https://stackoverflow.com/a/9694963/1241400

提示:

如果你想在Include()中使用lambda,请为 System.Data.Entity 添加using指令。

答案 1 :(得分:5)

关于:

Error   2   Error 6039: warning CS1701: Assuming assembly reference 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' matches 'System.Data.Entity, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', you may need to supply runtime policy

卸载实体框架2011年6月CTP。我前段时间在博客上写道:http://blog.3d-logic.com/2012/04/11/entity-framework-zombie-a-k-a-microsoft-entity-framework-june-2011-ctp/或者它将困扰你到你的日子结束(或直到你铺平你的机器)。