从EF 4升级到EF 5

Sim*_*ser 14 .net entity-framework .net-4.5 entity-framework-5

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

  • 是否存在可能对我的申请产生不利影响的重大变化或行为差异?
  • 升级路径有多容易?升级到EF 5是否需要更改代码或其他工作?
  • 是否有任何与代码优先相关的新功能值得升级?

Sco*_*ord 11

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

此外,我遇到了与DataAnnotations移动命名空间相关的(简单)重大更改:

实体框架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
Run Code Online (Sandbox Code Playgroud)

到了无数的地方.


Ser*_*sev 5

升级路径有多容易?升级到EF 5是否需要更改代码或其他工作?

您必须升级到.net 4.5才能使用大多数新功能.

是否有任何与代码优先相关的新功能值得升级?

与代码优先不完全相关,因为它是横切的,但仍然值得一提:Enum支持.