NHibernate发电机

时间:2020-03-05 18:47:03  来源:igfitidea点击:

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

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

  • Moregen免费的开源(GPL)O / R生成器,可以合并到现有的Visual Studio项目中。还可以将更改合并到生成的类中。
  • NConstruct Lite Free工具,用于生成NHibernate O / R映射源代码。不同的数据库支持(Microsoft SQL Server,Oracle,Access)。
  • GENNIT NHibernate代码生成器使用WYSIWYG在线UML设计器生成NHibernate代码的免费/商业Web 2.0代码。
  • 具有NHibernate模板商业产品的GenWise Studio;导入现有数据库并生成所有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。

解决方案

回答

我听说过一些有关流利的内容,但从未使用过,所以我不能说。我们是否已为hbm文件设置了智能感知功能?我只是编写自己的xml文件,但我知道那不是我们要的内容。

我们将寻找SQL脚本做什么,生成表? NHibernate的优点之一是它在flay查询生成上,因此我们不必为所有对象创建SP。

回答

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

话虽这么说,如果我们真的不想编写hbm文件,也许我们应该研究Active Record。

回答

我认为我们应该改用Fluent NHibernate。生成映射总是使我们达到80%的水平,并且仍然必须自定义以获取所需的内容。 Fluent-NHibernate允许我们使用可编译且易于重构的API映射实体。

回答

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

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

回答

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

密码匠的缺点:

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

Codesmith的优点:

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

NConstruct缺点:

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

NConstruct的优点:

  • 查看地图
  • 自动检测某些继承(对于1-1关系)
  • 简单的

以我为例,NConstruct为我完成了约60%的工作。

回答

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

更新:Visual NHibernate现在已经开源。请参阅:公告

回答

有一个新的2.0 Beta 2版本可用,其中包含许多新功能,并支持流畅的nhibernate,一对多和多对多映射。

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

回答

我们可以尝试安装到Visual Studio 2010中的Mindscape NHibernate Designer。尽管我还没有尝试过。