不建议在 ASP.NET 4 中使用 Entity Framework 7

  • Jonathan Allen
  • 邵思华

2014 年 12 月 14 日

话题:.NET语言 & 开发

Entity Framework 的第 7 个版本将是对这个已有 6 年历史的 ORM 系统的一次重新设计。如同我们在今年五月所做的报告 一样,新版本的框架将支持更多的平台,包括“传统的.NET Framework 应用程序(WPF、WinForms、控制台及 ASP.NET 4),手机 / 存储 / 统一设备,以及 ASP.NET 5(又称为 ASP.NET vNext)。”

之前的版本主要关注于对 SQL Server 的支持,而 EF 7 则已计划支持多种类型的数据库。Rowan Miller 在文章中写道

在数据库存储系统方面,我们已经支持 SQL Server、SQLite、InMemory、Azure Table Storage 与 Redis 的 provider。我们也与那些希望支持 DocumentDB、SQL Compact 与 MongoDB provider 的人们进行了一些讨论。

在这其中,SQL Server 仍处于最高优先级。紧随其后的是 PostgreSQL,因为后者被认为是“标准的 Mac / Linux 环境”。由于 EF 团队已承诺对 ASP.NET 5 与.NET 核心的支持,因此对于 OS X 与 Linux 的支持十分重要。

除了对 ASP.NET 5 的支持,其它高优先级的工作包括:

  • 实现更多的特性
  • 实现 EF 7 对其它平台(例如手机、存储设备等)的支持
  • 实现更多的 provider,并由 EF 团队负责(SQLite、Azure Table Storage 等)

值得一提的是,支持 ASP.NET 5 的第一个 EF 7 版本并非 EF 团队所推荐的版本,Rowan 继续写道:

对于支持 ASP.NET 5 的第一个 EF 7 的发布,我们并不建议将它作为其它所有平台的发布版本。EF 7 将作为 ASP.NET 5 应用程序的默认数据技术平台,但我们不建议在其它平台上让它立即取代 EF6,因为我们还有更多的功能需要实现。

而由于 ASP.NET 5 也是一个全新版本的平台,因此基本不会出现 EF 7 遗漏了某些特性的情况,我们自然会全力以赴让这些特性尽快完成。

我们已经讨论过多种方式,如何在推出一个支持 ASP.NET 5 的稳定的 Entity Framework 版本时让这一点更加清晰明了。虽然还没有确定细节(恐怕直到接近发布时才能确定下来),但我们已经考虑了以下这些方案:

  • 依然将 NuGet 包标注为预发布,这样在用户安装稳定版本时就不会误装。
  • 仅支持 ASP.NET 5 平台,因此不会被其它应用程序所安装。在这种场景下,你仍然可以选择在其它平台上安装预发布版本的安装包。

查看英文原文:Entity Framework 7 Not Recommend for ASP.NET 4

.NET语言 & 开发