2008-09-03 110 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