我想知道EntityFramework.dll和System.Data.Entity.dll有什么共同点,它们有什么不同?我的项目引用System.Data.Entity.dll(June CTP)来利用代码优先模型,一切正常。
现在我希望使用Code First Migrations工具,它需要EntityFramework.dll,我还必须添加到我的项目中。但是,当引用这两个库(EntityFramework.dll和System.Data.Entity.dll)时,我会遇到很多编译器错误,认为在两个库中都定义了一些类。
当我删除EntityFramework.dll时,项目会再次编译,但我无法使用迁移。当只引用EntityFramework.dll时,我得到编译器错误,告诉我找不到某些类(例如Spatial数据类型)。
在这种情况下我该怎么办?提前谢谢!
答案 0 :(得分:16)
System.Data.Entity.dll版本“4.2.0.0”(June CTP 2011)包含EFv4.0和EFv4.1 = ObjectContext API和DbContext API +新功能的所有功能,但它可能是唯一的版本很长时间将这两个API组合在同一个程序集中。这个CTP已经死了。新的核心功能将移至.NET 4.5,DbContext API仍将作为包含EntityFramework.dll的单独NuGet包提供。所有内容都被描述为here。
代码迁移依赖于EFv4.1 Update 1及其EntityFramework.dll。它们与June CTP不兼容,并在其安装说明中直接描述,或prerequisites =您不能将它们与June CTP一起使用。