我的应用程序基于 .NET 4.0 和 EF 4。我现在正在考虑升级到最新版本。
- 是否有任何可能对我的申请产生不利影响的重大变化或行为差异?
- 升级路径有多容易?升级到 EF 5 是否需要任何代码更改或其他工作?
- 是否有任何与代码优先相关的新功能值得升级?
我的应用程序基于 .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 才能使用大多数新功能。
是否有任何与代码优先相关的新功能值得升级?
与代码优先不完全相关,因为它是横切的,但仍然值得一提:Enum support。