我刚刚打开 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
并在此处查看详细答案:https://stackoverflow.com/a/9694963/1241400
提示:
如果您想将 lambda 与 Include()
一起使用,请为 System.Data.Entity 添加一个 using 指令。
关于.net - 为什么我的项目中同时存在 EntityFramework 和 System.Data.Entity 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313992/