NHibernate生成器

时间:2008-09-03 14:13:46

标签: nhibernate

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

以下列表来自http://www.hibernate.org/365.html,这是最好的原因吗?

  • Moregen Free,开源(GPL)O / R生成器,可以合并到现有的Visual Studio项目中。还将更改合并到生成的类中。
  • NConstruct Lite免费工具,用于生成NHibernate O / R映射源代码。不同的数据库支持(Microsoft SQL Server,Oracle,Access)。
  • GENNIT NHibernate代码生成器使用WYSIWYG在线UML设计器生成NHibernate代码的免费/商业Web 2.0代码。
  • GenWise Studio with NHibernate Template商业产品;导入现有数据库并生成所有XML和类,包括工厂。它还可以自动为您的NHibernate BO-Layer生成一个asp.net Web应用程序。
  • HQL Analyzer和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。

9 个答案:

答案 0 :(得分:22)

我认为你应该看一下Fluent NHibernate。生成映射始终会使您达到80%的标记,您仍然需要自定义以获得所需内容。 Fluent-NHibernate允许您使用编译安全且重构友好的API映射您的实体。

答案 1 :(得分:8)

有一个新的2.0 Beta 2版本,提供了许多新功能,支持流畅的nhibernate,一对多和多对多映射。

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

答案 2 :(得分:5)

执行此操作的商业工具是Visual NHibernate请注意,我为创建Visual NHibernate的公司Slyce Software工作。

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

答案 3 :(得分:5)

您可以尝试安装到Visual Studio 2010中的Mindscape NHibernate Designer。虽然我还没有尝试过。

答案 4 :(得分:3)

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

话虽如此,如果你真的不想写hbm文件,也许你应该研究Active Record

答案 5 :(得分:2)

我听过一些关于流利的事情,但从未使用它,所以我不能说。您是否为hbm文件设置了intellisense?我只是编写自己的xml文件,但我知道这不是你想要的。

您希望SQL脚本做什么,生成表? NHibernate的优点之一是它的flay查询生成,因此您不必为所有对象创建SP。

答案 6 :(得分:2)

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

codesmith cons:

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

codesmith pros:

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

NConstruct cons:

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

NConstruct pros:

  • 地图视图
  • 自动检测一些继承(针对1-1关系)
  • 简单

在我的案例中,NConstruct为我做了大约60%的工作。

答案 7 :(得分:2)

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

注意:Devart公司

答案 8 :(得分:1)

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

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