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

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

我刚刚打开 VS 2012 并创建了一个类库项目。之后,我向我的解决方案添加了一个新的 ADO.NET 实体数据模型 项。

我注意到有一个名为 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

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

最佳答案

您应该拥有两个程序集:

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

提示:

如果您想将 lambda 与 Include() 一起使用,请为 System.Data.Entity 添加一个 using 指令。

关于.net - 为什么我的项目中同时存在 EntityFramework 和 System.Data.Entity 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313992/

相关文章:

.net - SQL Server 与 .NET 加密

c# - 如何使用 CodeDOM 定位特定语言版本?

c# - 从 64 位应用程序调用 Twain 驱动程序

c# - 如何将通用类型数据列表转换为另一个通用类型数据列表

c# - 输出类型为类库的项目无法直接启动 ERROR

.net - 做 Workflow Foundation 4 工作流持久化后保留对象引用

entity-framework - EF 代码优先。父级的子级集合为空

c# - Entity Framework 将导航属性设置为 null

c++ - 在 Visual Studio 2012 C++ 项目中嵌入 Python

debugging - 无法开始调试。 Visual Studio 2012 一次调试后提示