我需要知道是否可以开始在VS 2011中使用最新版本的EF(4.3.1),而无需按照here的说明安装这些CTP组件。
我安装了这些组件,但我将其删除,从那时起,我无法将新的edmx文件添加到.net 4目标项目中;它抱怨缺少对System.Data.Entity的引用。
我是否需要重新安装VS 2011?
答案 0 :(得分:9)
删除并重新安装Visual Studio之后,我仍然无法得到错误的红色,因此我使用进程监视器记录Visual Studio正在使用System.Data.Entity
作为路径过滤器进行操作,结果发现Visual Studio正在阅读
C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ policy.4.0.system.data.entity v4.0_0.0.0.0__b77a5c561934e089 \ policy.4.0.system.data.entity.config
与
绑定System.Data.Entity.dll v 4.2.0.0
一旦我清除文件,VS就像魅力一样。
CTP卸载将此解决了。
答案 1 :(得分:1)
是的,使用.net 4时应该没有任何问题,但是在使用.net 4.5时会列出已知问题。你不需要重新安装vs来获得实体框架的4.3.1版,只需从nuget包库中安装它,如果你使用的是.net 4,它似乎只是工作。
在.net 4.5上安装EF4.3.1时列出的问题包括下面列出的问题。
实体框架4.1至4.3包含了附加的数据注释 EntityFramework程序集中的System.ComponentModel.DataAnnotations名称空间。 在.NET 4.5中,这些注释被移动为.NET Framework中的一部分 System.ComponentModel.DataAnnotations.Schema的命名空间 System.ComponentModel.DataAnnotations.dll程序集。如果您使用的是EF 4.x和定位 .NET 4.5这导致两个数据注释在不同的程序集中具有相同的名称。 因为.NET Framework中的注释位于不同的命名空间中,所以我们不是 能够使用类型转发来避免这种冲突。
可以在.NET 4.5上使用EF 4.x,但我们建议使用最新的预发行版 EF 5的版本。如果您没有使用受影响的数据注释,则不会产生任何影响 在你的代码上。如果您在C#项目中使用数据注释,则可以使用extern 修饰符,以确保您的代码使用EntityFramework.dll中的注释 (http://msdn.microsoft.com/en-us/library/e59b22c5(v=VS.80).aspx)。如果你使用新的 .NET 4.5中System.ComponentModel.DataAnnotations.dll程序集的注释 它们不会被Code First处理。
受影响的注释是: