【问题标题】:Are there technical reasons EF 5 isn't fully supported on .NET4.0?.NET4.0 不完全支持 EF 5 是否存在技术原因?
【发布时间】:2012-07-21 17:20:33
【问题描述】:

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

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

【问题讨论】:

  • 我希望更新后的标题使它成为一个“建设性”的问题。然而,即使某件事技术上可行,支持多个目标也可能实际可行(想象一下,如果它只使用一个新的“便利” ” 4.5 API 调用),尤其是在尝试推广最新最好的 .. 时。此外,从 .NET4.0 到 .NET4.5 并不是像 .NET3.5 到 .NET 那样“破坏 CLR”的变化。 NET4(或 .NET1.1 到 .NET2)是。
  • 一个直接的例子:支持 2 个框架立即使所需的测试加倍(每个框架都需要测试一切),即使您不知道任何技术问题。
  • You can install EF5 for .NET4.0 via NuGet,但您可能无法获得所有功能。
  • 是的。我知道这一点。我正在寻找的是 .net 4.5 的功能,EF5 使用这些功能来支持特定的枚举和空间。
  • @Hemant 确保在问题本身中包含(有时强调)此类信息。

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


【解决方案1】:

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

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

计划并尝试在 2011 年夏季(Entity Framework June 2011 CTP)发布enum、空间支持和其他新功能(除了 Code-First 迁移)作为 .NET 4.5 之前核心库的更新释放。但是 EF 团队已经决定,NuGet 包可以进行这种带外更新(这就是为什么 EF 4.3 已经具有不需要接触核心库的迁移功能),但对于核心库,它们也是困难且在 .NET 4.5 发布之前无法完成:

实体框架有两个逻辑部分,核心 .NET Framework 和 Visual Studio 中附带的组件和 我们可以更新的“带外”组件 频繁的时间表。我们目前正在研究如何更新 核心组件的节奏也更频繁。 'EF 2011 年 6 月 CTP’是我们首次尝试运送更多核心组件 经常而且很明显我们只是在技术上还没有准备好 这样做吧。

核心组件包括:

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

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

  • DbContext API 和代码优先 (EntityFramework.dll)
  • T4 模板,用于将 DbContext API 与 Model First 和 Database First 结合使用
  • EF 电动工具
  • 代码优先迁移

(引用自here。)

这意味着enum 对 EF 的支持将成为 .NET 4.5 核心库的一部分,而不是可下载的 EF 5 NuGet 包的一部分。因此,enum 等新的 EF 功能和空间支持不与 .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

【讨论】:

  • 所以我的理解是,团队希望非代码优先库能够利用枚举、空间支持等。在这种情况下,发布将更新 VS 2010 的 SP 将是更便宜的选择。通过要求开发人员在短短 2 年内迁移到 VS 2012 而不对运行时进行重大更改,从而迫使项目迁移到 .Net 4.5 和那里,这就像在资金不足的情况下运行。我知道 VS 2012 是一个更好的产品。 :) 我只希望他们大幅降低 VS 2012 升级的价格。但我很高兴今后 ASP.Net 和 EF 将开源。
  • @Hemant 至少它不像 MSTest 项目的自动“功能”.. 想要在 VS2010 中进行 .NET35 测试? :(
  • @Hemant:我找到了更多引用和资源,并包含在我的答案中。但那里并没​​有什么新东西。
猜你喜欢
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2020-09-17
  • 2014-04-20
  • 1970-01-01
相关资源
最近更新 更多