Entity Framework Power Tools Beta 3 发布

  • Anand Narayanaswamy
  • 邵思华

2013 年 2 月 7 日

话题:语言 & 开发

Microsoft近期发布了Entity Framework Power Tools Beta 3,修复了一个在Visual Studio 2012 Update 1下遇到的问题,同时为在 Windows 8 Pro 环境下使用 Visual Studio 2012 Ultimate 时遇到的 Microsoft.DbContextPackage.Extensions.ProjectExtensions.InstallPackage(Project project, String packageId) 错误提供了解决方案。

Entity Framework Power Tools Beta 3 为某个 Build 问题提供了解决方案,该问题会在创建一个新的空 C# 控制台应用程序,并使用 Code First 逆向工程时发生。这次发布还提供了一个修复,使得 Entity Framework Power Tools 在自动生成代码时,会生成System.Data.Spatial这个 partial 类,以取代之前的System.Data.Entity.Spatial类。

最新版本也修复了一个异常,该异常发生于在设计器中使用 Power Tools 查看Code First EDM时。另一个同时修复的问题是,当项目文件(Project)处于某个解决方案文件夹(Solution Folder)之下时,File 菜单下的选项都不能正常使用,但也不会提示任何错误信息。

Entity Framework Power Tools Beta 3 引入了 Code First 逆向工程,并在上下文菜单中加入了定制化逆向工程模板的相关功能,右键单击 C# 项目就可以看到它。Code First 逆向工程菜单项能够生成POCO类、派生的DbContext,以及现有数据库的Code First 映射。使用定制化逆向工程模板相关选项,你能够在项目中加入默认的逆向工程 T4 模板,并编辑它的内容。

当你右键单击某个包含派生的 DBContext 类的文件时,你会发现一些新引入的上下文菜单项,如 View Entity Data Model (Read-only),View Entity Data Model XML,View Entity Data Model DDL SQL,以及 Generate Views。当你右键单击某个 Entity Data Model(*.edmx)文件时,你也会发现一个新的 Generate Views 上下文菜单项。

Microsoft 会在即将到来的发布中修复 Generate Views 和 View Entity Data Model (Read-only) 功能的相关问题。

根据官方消息,Microsoft 将不打算发布 Power Tools 的正式版(RTM),但会继续发布 Beta 版本,直到相关功能都在 Visual Studio 2012 的 Entity Framework 设计器的某个预发布版本中可用为止。

另有未证实的消息称,不久之后 Entity Framework Power Tools 将停止更新,并将整个合并到 Entity Framework 中。

Calvin 留言道:

因此,Code First 并不使用设计器。从 Code First 角度而言,最有趣的功能是 Code First 逆向工程,这也不需要设计器。因此这种发布之间的依赖有些古怪。另外,悄悄说一声,对于这种代码集中式开发方式,Code First 貌似不是个很好的名字。

Microsoft 的项目经理 Rowan Miller 回应道:

我所说的“包含为 EF 设计器的一部分”,实际是指将所有 EF 工具(EF 设计器、Code First 逆向工程,以及其它 Power Tools 功能)打包在一个独立的安装文件中(并成为新版本 Visual Studio 的一部分)。我们将使用与在 Database First 方式下选择 table 同样的向导方式。

我们也讨论过改名的问题,但考虑到它已经存在了很久,此时改名已经太迟。另外,悄悄说一声,我听说有人将 Code First 映射到现有数据库的方式称为‘Code Second’。

查看英文原文Entity Framework Power Tools Beta 3 Released


感谢杨赛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发