NHibernate发电机
什么是为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。尽管我还没有尝试过。