在Entity Framework中引入Code First的做法已经获得了很多赞誉。尽管这项技术未来还有很长的路要走,但是它已经动摇了ORM、nHibernate的统治地位,微软所做出的进展非常惊人。为了保持这种势头,微软发布了一系列强大的工具,它们能够获取现存数据库的信息,并创建Code First的代码。
乍一看,微软提供的这种方式很奇怪,它会对数据库进行反向工程,生成code-first模型。但在这背后确实包含不少有用的想法。第一种想法仅仅是具有教育意义。和之前版本的Entity Framework中设计者驱动的工作流不同,Code First不会告诉你应该如何开始,而只是让你一切从头。开发者可以先创建一部分数据库,甚至只是玩具式的项目,然后可以使用这种工具,看相匹配的Entity Framework类会是什么样子。从那里他们可以构建出其余类,然后生成完整的数据库模式。
另一个有趣的主意在于你把这与第三方数据库和提供商组合起来的时候。例如,你可以使用它来对SQL Server 数据库进行反向工程,然后使用Devart的dotConnect 库在Oracle、MySQL、PostgreSQL或者SQLite中重新生成。
当前微软只在EF Power Tools CTP1中提供了反向工程工具。当前它只是一个预览版,因此只支持SQL Server和C#。想要安装的话,你可以从Visual Studio Gallery中下载。另外,你还需要安装使用NuGet的EF 4.1。