2012-07-21 66 views
10

我想升级我的应用程序到EF 5,以利用支持枚举空间等功能。但是,除非我移动到.Net 4.5,否则我无法升级。是否有技术上的原因EF 5不完全支持.NET4.0?

我想知道.Net 4.5的哪些功能是EF 5使用的,它不能在.Net 4.0中完成?

+0

我希望更新的标题使它成为“建设性”的问题。但是,即使某些技术上可行,在支持多个目标(想象它是否只使用一个新的“便利”4.5 API调用)时,尤其是在试图推广最新的时候,可能不会实际可行。 - 最大..也从.NET4.0到.NET4.5不是一个“CLR突破”的变化,如从.NET3.5到.NET4(或.NET1.1到.NET2)。 – 2012-07-21 17:27:07

+0

立即举例:支持2个框架立即使需要的测试翻倍(每个框架都需要测试)**,即使**您没有意识到任何技术问题。 – 2012-07-21 17:29:40

+2

[您可以通过NuGet安装EF5 for .NET4.0](http://nuget.org/packages/entityframework),但您可能无法获得所有功能。 – 2012-07-21 17:33:25

回答

15

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

  • 的EF “核心库” 等(System.Data.Entity.dll),其是在.NET Framework
  • 附加包部分/装配您可以通过下载的NuGet含有DbContext API和代码优先发展

有计划在2011年夏季(的Entity Framework June 2011 CTP),试图释放enum,spatia l支持和其他新功能(代码优先迁移除外)作为.NET 4.5发布前的核心库更新。但EF团队已经决定对NuGet包进行这种带外更新(这就是为什么EF 4.3已经具备了不需要接触核心库的Migrations功能),但是对于核心库他们也是如此困难和不能做.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)
  • 使用的DbContext API使用模型首先&数据库优先
  • EF电动工具
  • 代码优先迁移

(引用自T4模板here)。

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

更多关于历史和“EF NuGet包”分离“EF核心库”的原因是在这里:http://blogs.msdn.com/b/adonet/archive/2011/10/18/how-we-talk-about-ef-and-its-future-versions.aspx

+0

所以我知道团队希望非代码优先的库能够利用枚举,空间支持等。在这种情况下,发布一个SP来更新VS 2010将是一个更便宜的选择。迫使项目转向.Net 4.5,并要求开发人员在仅仅2年的时间内转向VS 2012,而不会在运行时发生重大变化,就像运行在金钱背后。我知道VS 2012是一个更好的产品。 :)我只是希望他们大幅降低VS 2012升级的价格。但我很高兴未来,ASP.Net和EF将开放源代码。 – Hemant 2012-07-21 17:51:54

+0

@Hemant至少它不像MSTest项目的自动“功能”..想在VS2010中进行.NET35测试? :( – 2012-07-21 18:14:05

+0

@Hemant:我发现了一些更多的引用和资源,并包含在我的答案中,但没有什么新东西。 – Slauma 2012-07-21 18:26:08

相关问题