10

我想将我的应用程序升级到 EF 5,以利用支持枚举空间等功能。但是,除非我迁移到 .Net 4.5,否则我无法升级。

我想知道 .Net 4.5 的哪些功能 EF 5 使用了它在 .Net 4.0 中无法完成的功能?

4

1 回答 1

15

我的理解是 EF >= 4.1(包括 EF 5)包括

  • EF“核心库”,如 ( System.Data.Entity.dll),是 .NET Framework 的一部分
  • 您可以通过 Nuget 下载的附加包/程序集,其中包含DbContextAPI 和代码优先开发

2011 年夏天(实体框架 2011 年 6 月 CTP)计划并尝试发布enum.NET 4.5 之前的核心库更新,空间支持和其他新功能(代码优先迁移除外)。但是 EF 团队已经决定 NuGet 包可以进行这种带外更新(这就是为什么 EF 4.3 已经具有不需要接触核心库的迁移功能),但对于核心库,它们也是困难且在 .NET 4.5 发布之前无法完成:

Entity Framework 有两个逻辑部分,一个是 .NET Framework 和 Visual Studio 中的核心组件,另一个是我们可以更频繁地更新的“带外”组件。我们目前正在研究如何以更频繁的节奏更新核心组件。“EF 2011 年 6 月 CTP”是我们首次尝试更频繁地运送核心组件,很明显我们在技术上还没有准备好这样做。

核心组件包括:

  • 核心 EF 运行时(System.Data.Entity.dll 和 System.Web.Entity.dll)
  • EF 设计器

带外组件包括:(我们将来可能会运送更多带外组件)

  • DbContext API 和代码优先 (EntityFramework.dll)
  • 用于将 DbContext API 与 Model First 和 Database First 一起使用的 T4 模板
  • 英孚电动工具
  • 代码优先迁移

(从这里引用。)

这意味着enum对 EF 的支持将成为 .NET 4.5 核心库的一部分,而不是可下载的 EF 5 NuGet 包的一部分。因此,新的 EF 功能(如enum空间支持)不与 .NET 4.0 一起提供。

有关将“EF Core 库”与“EF NuGet 包”分开的历史和原因的更多信息,请参见:http: //blogs.msdn.com/b/adonet/archive/2011/10/18/how-we-talk- about-ef-and-its-future-versions.aspx

于 2012-07-21T17:38:35.500 回答