2008-09-03 59 views
32

用于为NHibernate生成实体类和/或hbm文件和/或sql脚本的最佳工具是什么?NHibernate生成器

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

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

回答

22

我想你应该看看Fluent NHibernate。生成映射总能让你达到80%的标准,而且你还必须定制才能获得你想要的。 Fluent-NHibernate允许您使用编译安全和重构友好的API来映射实体。

+1

我想我听到刚刚开始心悸,我对此很兴奋。我一直在寻找L2S的一个很好的选择,并且因为XML而对NH没有兴趣。非常感谢。 – 2008-12-10 03:10:15

+0

我想提请注意,这不是NHibernate的视觉设计师 – 2011-12-20 11:50:49

+0

我对Fluent有一个非常负面的经历 - 它使我获得了90%的好评,然后把我的裤子留下。我的另一个可视化工具DevArt Entity Developer的经验非常相似 - 让我获得90%的体验,然后让我垂涎。我还没有找到一个可行的工具,但会警告这两种方法,除非你期望一些真正的基本用途,没有太高级的东西。 – 2012-02-01 21:41:41

2

我听说过一些关于流利的东西,但从来没有用过它,所以我不能说。你有没有为hbm文件设置intellisense?我只是写我自己的XML文件,但我知道这不是你想要的。

你会在寻找SQL脚本来做什么,生成表? NHibernate的一个美丽之处在于它的剥离查询生成,所以你不必为所有对象创建SP。

3

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

这就是说,如果你真的不想写hbm文件,也许你应该看看Active Record

+0

当然,我明白你的意思,我同意你的意见。我认为95%的写作HBM是腿部工作,只剩下5%需要一些思考,所以我只是在寻找一些东西来完成腿部工作。 – Dan 2008-09-03 14:35:27

+4

如果您的数据库包含足够的表格,手工写入任何东西都是浪费时间 – 2011-10-19 19:54:42

1

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

但是,当您拥有大型数据库时,这是一个巨大的痛苦。

2

我试了两种,NConstruct lite和codesmith。 我需要得到从VB编写的现有asp.net项目现有的数据库对象模型,这是我的经验:

CodeSmith的缺点:

表之间
  • 没有检测继承
  • 不映射数据库视图
  • 复杂的使用

CodeSmith的优点:

  • 生成C#和VB
  • 支持很多DB引擎包括PostgreSQL的
  • 的Visual Studio集成

NConstruct缺点:

  • 不会产生VB,只有c#
  • 几个数据库引擎,只是SQL-Server,Oracle和MS-Access

NConstruct优点:

  • 地图视图
  • 自动检测一些遗传(1-1关系)
  • 简单

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

5

这样做的商业工具是Visual NHibernate请注意,我为创建Visual NHibernate的Slyce Software公司工作。

更新: Visual NHibernate现在已经开源。请参阅:the announcement