NHibernate的发电机

什么是为NHibernate生成实体类和/或HBM文件和/或SQL脚本的最佳工具。

以下列表来自http://www.hibernate.org/365.html ,这是最好的,为什么?

  • Moregen免费,开源(GPL)O / R发生器,可以合并到现有的Visual Studio项目。 还将更改合并到生成的类。
  • 用于生成NHibernate O / R映射源代码的NConstruct Lite免费工具。 不同的数据库支持(Microsoft SQL Server,Oracle,Access)。
  • GENNIT NHibernate代码生成器使用WYSIWYG在线UMLdevise器免费/商业Web 2.0代码生成NHibernate代码。
  • GenWise Studio与NHibernate模板商业产品; 导入您现有的数据库并生成所有XML和类,包括工厂。 它也可以自动为你的NHibernate BO-Layer生成一个asp.net web应用程序。
  • HQL分析器和hbm.xml GUI编辑器
  • Mats Helander的ObjectMapper是一个支持NHibernate的映射GUI
  • MyGeneration是一个基于模板的代码生成器GUI。 其模板库包含用于从数据库生成映射文件和类的模板。
  • AndroMDA是一个开源代码生成框架,使用模型驱动架构(MDA)将UML模型转换为可部署的组件。 它支持使用NHibernate作为持久性框架的数据访问层的生成。
  • NH的CodeSmith模板
  • NHibernate Helper Kit是一个VS2005插件,用于生成类和映射文件。
  • NConstruct – 智能软件工厂商业产品; 通过简单的向导程序,为信息系统的所有层生成完整的.NET C#源代码。 基于NHibernate的O / R映射。 对于WinForms和ASP.NET 2.0。

我想你应该看看stream利的NHibernate 。 生成映射总能让你达到80%的标记,而且你还得定制才能得到你想要的。 stream利的NHibernate允许你映射你的实体编译安全和重构友好的API。

有一个新的2.0 Beta 2版本提供了大量的新function和支持stream利的nhibernate,一对多和多对多的映射。

http://www.codeplex.com/Wikipage?ProjectName=nmg

您可以尝试Mindscape NHibernatedevise器安装到Visual Studio 2010.虽然我还没有尝试过。

Visual NHibernate是一个商业工具。 请注意,我为创buildVisual NHibernate的公司Slyce Software工作。

更新: Visual NHibernate现在已经开源。 见: 公告

你需要问自己的第一个问题是为什么你甚至需要一个发电机。 老实说,根据我的经验,写hbm文件并不难。

这就是说,如果你真的不想写hbm文件,也许你应该看看活动logging 。

我听说过一些stream利的东西,但从来没有用过,所以我不能说。 你有没有为hbm文件设置intellisense? 我只是写我自己的XML文件,但我知道这不是你在找什么。

你会在寻找SQL脚本,生成表? NHibernate的美丽之一就是它的剥离查询一代,所以你不必为所有的对象创buildSP。

你应该看看Devart的NHibernate Designer: Entity Developer for NHibernate

注:Devart公司

我尝试了两种,NConstruct lite和codemith。 我需要从一个现有的数据库中获取用VB编写的现有的asp.net项目的对象模型,这是我的经验:

codesmith缺点:

  • 不检测表之间的inheritance
  • 不映射数据库视图
  • 复杂的用法

codesmith优点:

  • 生成C#和VB
  • 支持很多数据库引擎,包括PostgreSQL
  • Visual Studio集成

NConstruct缺点:

  • 不生成VB,只有C#
  • less数数据库引擎,只有SQL-Server,Oracle和MS-Access

NConstruct优点:

  • 地图的意见
  • 自动检测一些inheritance(对于1-1关系)
  • 简单

在我的情况下,NConstruct为我做了大约60%的工作。

是的,编写HBM文件是非常简单的。

然而,当你拥有一个大的数据库时,这是一个巨大的痛苦。