是否有技术原因在.NET4.0上不完全支持EF 5?

Hem*_*ant 10 .net .net-4.5 entity-framework-5

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

我想知道.Net 4.5使用的是什么功能,它在.Net 4.0中无法完成?

Sla*_*uma 15

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

  • EF"核心库",如(System.Data.Entity.dll),它们是.NET Framework的一部分
  • 您可以通过Nuget下载包含DbContextAPI和Code-First开发的附加软件包/程序集

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

实体框架有两个逻辑部分,.NET Framework和Visual Studio中的核心组件以及我们可以在更频繁的时间表上更新的"带外"组件.我们目前正在研究如何以更频繁的节奏更新核心组件.'EF June 2011 CTP'是我们第一次尝试更频繁地运送核心组件,很明显我们尚未做好技术准备.

核心组件包括:

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

带外组件包括:(我们将来可能会出货更多的带外组件)

  • DbContext API和代码优先(EntityFramework.dll)
  • T4模板使用DbContext API与模型优先和数据库优先
  • EF电动工具
  • 代码优先迁移

(从这里引用.)

这意味着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-关于-EF-和其-未来versions.aspx