【问题标题】:Upgrading from EF 4 to EF 5从 EF 4 升级到 EF 5
【发布时间】:2012-08-21 16:51:37
【问题描述】:

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

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

【问题讨论】:

    标签: .net entity-framework entity-framework-5 .net-4.5


    【解决方案1】:

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

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

    Entity Framework 4.1 到 4.3 在 System.ComponentModel.DataAnnotations 命名空间中的 EntityFramework 程序集。在 .NET 4.5 中,这些注释被移到 成为 .NET Framework 的一部分 System.ComponentModel.DataAnnotations.Schema 的命名空间 System.ComponentModel.DataAnnotations.dll 程序集。如果您正在使用 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 的这次更新。如果您遇到任何其他问题,请告诉我们。谢谢
    • 当我们发现无法再部署到 Server 2003 时,我们从 EF5/NET 4.5 恢复了(由于其他原因我们必须这样做)。上面已编辑。
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 您认为迁移到 EF5 的好处是什么。你会推荐它吗?
    • @Cpat 是的,我愿意。 enum 仅支持就值得感动。性能优化也不会受到伤害。
    • 遗憾的是,enum 的支持相当贫乏。
    • 使用 EF 6 枚举,空间和改进的性能现在也可以在 .net 4.0 下工作。 msdn.microsoft.com/en-us/data/jj574253.aspx
    猜你喜欢
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多