我的应用程序基于.NET 4.0和EF 4。我现在正在考虑升级到最新版本。
- 是否有任何破坏性的变化或行为上的差异可能对我的应用程序产生不利影响?
- 升级路径有多容易?升级到EF 5需要进行任何代码更改或其他工作吗?
- 是否有任何与code-first相关的新功能值得升级?
我的应用程序基于.NET 4.0和EF 4。我现在正在考虑升级到最新版本。
编辑:首先,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
输出无数位小数。
升级路径有多容易?升级到EF 5需要进行任何代码修改或其他工作吗?
大多数新功能需要升级到.NET 4.5才能正常工作。
是否有任何与Code-First相关的新功能值得升级?
虽然不是完全与Code-First相关,因为它是横切性的,但仍值得一提:枚举类型支持。
enum
已经值得迁移了。性能优化也不会有坏处。 - Sergei Rogovtcevenum
的支持相当不足。 - Marc L.