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

时间:2012-07-21 17:20:34

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

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

我想知道.Net 4.5在.Net 4.0中使用哪些功能无法在.Net 4.0中使用?

1 个答案:

答案 0 :(得分:15)

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

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

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

  

实体框架有两个逻辑部分,即核心   .NET Framework和Visual Studio中的组件   “带外”组件,我们可以更新更新   经常安排。我们目前正在研究如何更新   更频繁的节奏的核心组件。 '2011年6月EF   CTP'是我们第一次尝试更多地运送核心组件   我们经常在技术上做好准备   做到这一点。

     

核心组件包括:

     
      
  • 核心EF运行时(System.Data.Entity.dll& System.Web.Entity.dll)
  •   
  • EF Designer
  •   
     

带外组件包括:(我们可能会带出更多带外费用   未来的组件)

     
      
  • DbContext API&代码优先(EntityFramework.dll)
  •   
  • T4模板使用DbContext API和Model First&数据库优先
  •   
  • EF电动工具
  •   
  • Code First Migrations
  •   

(引自here。)

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

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