从EF 4升级到EF 5

14

我的应用程序基于.NET 4.0和EF 4。我现在正在考虑升级到最新版本。

  • 是否有任何破坏性的变化或行为上的差异可能对我的应用程序产生不利影响?
  • 升级路径有多容易?升级到EF 5需要进行任何代码更改或其他工作吗?
  • 是否有任何与code-first相关的新功能值得升级?
2个回答

11

编辑:首先,EF 5 / .NET 4.5 的一个主要问题是它将永远不支持 Windows XP 或 Server 2003(或更早版本)。如果您需要支持其中任何一个操作系统,请使用带有.NET 4.0的EF 4.4,该版本没有任何新功能。

此外,我遇到了一个(简单的)破坏性变化,涉及DataAnnotations移动命名空间:

Entity Framework 4.1至4.3在EntityFramework程序集中的System.ComponentModel.DataAnnotations命名空间中包含了额外的数据注释。在.NET 4.5中,这些注释被移至System.ComponentModel.DataAnnotations.dll程序集的System.ComponentModel.DataAnnotations.Schema命名空间中成为.NET Framework的一部分。如果您正在使用EF 4.x并针对.NET 4.5,则会在不同程序集中具有相同名称的两个数据注释。

请参见http://blogs.msdn.com/b/adonet/archive/2012/02/29/ef4-3-1-and-ef5-beta-1-available-on-nuget.aspx,这仍然适用于EF 5 RTM。

简而言之,我需要添加:

using System.ComponentModel.DataAnnotations; // had this already
using System.ComponentModel.DataAnnotations.Schema; // needed this one

输出无数位小数。


谢谢你的更新,Scott。如果你遇到其他问题,请告诉我们。谢谢。 - SimpleUser
当我们发现无法部署到Server 2003(由于其他原因,我们必须这样做)时,我们从EF5/NET 4.5回退了。已编辑如上。 - Scott Stafford

5

升级路径有多容易?升级到EF 5需要进行任何代码修改或其他工作吗?

大多数新功能需要升级到.NET 4.5才能正常工作。

是否有任何与Code-First相关的新功能值得升级?

虽然不是完全与Code-First相关,因为它是横切性的,但仍值得一提:枚举类型支持


你认为迁移到EF5有哪些好处?你会推荐吗? - SimpleUser
@Cpat 是的,我会。仅支持enum已经值得迁移了。性能优化也不会有坏处。 - Sergei Rogovtcev
遗憾的是,enum的支持相当不足。 - Marc L.
使用 EF 6 枚举、空间和提高性能现在还可在 .net 4.0 下运行。http://msdn.microsoft.com/zh-cn/data/jj574253.aspx - eug

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接