2010-10-11 94 views
8

可能重複:
What is NHibernate?什麼是NHibernate,爲什麼我應該使用它?

我聽到這個名字NHibernate用了不少,但我真的不知道它是什麼。我已經read the Wikipedia article,但如何在我的C#應用​​程序使用NHibernate(桌面W/WPF,捲紙W/ASP.NET MVC)我不明白會:

  • 更改代碼
  • 更容易/更快

我應該看看在我的項目中使用NHibernate嗎?


UPDATE:感謝識別這是一個傻瓜!我沒有意識到這已經被問到。我想我的真正的問題是關於NHibernate與Linq to SQL(我一直在使用我的所有應用程序),但已被問到herehere

謝謝大家! :)

+0

你可以看看LINQ2SQL第一,得到的ORM可以多麼容易使事情的想法,然後看看NHibernate的後面,它提供了比LINQ2SQL更爲企業級的ORM。 – 2010-10-11 23:04:37

+0

或http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework – pm100 2010-10-11 23:05:51

+0

哎呀,沒有意識到這是一種欺騙。抱歉! – 2010-10-12 17:36:47

回答

13

NHibernate是一個ORM(對象關係映射器)。其目的是將您的OO應用程序中的對象映射到數據庫中的表以實現持久性。

爲什麼你需要它?因爲它可以幫你避免編寫大量繁瑣的ADO.NET代碼。從本質上講,它在開發CRUD應用程序時增強了開發人員的生產力,也就是說,主要目的是創建,讀取,更新和刪除數據庫中的數據的應用程序。

NHibernate是開源的,你需要意識到你正在使你的應用程序依賴於第三方庫,它的長期目標可能與你的不同。

如果你想要一個ORM的效率,而不會引入這種依賴關係,認爲實體框架,或LINQ2SQL(請注意,LINQ2SQL鎖定你到SQL Server)。

最後,如果你不需要一個ORM的提高生產力,並且要絕對控制,堅持老式ADO.NET。

+0

知道OP當前如何與數據庫一起工作會很有趣。即使使用ADO.NET,他也沒有做過多少改變,這可以解釋爲什麼他不會爲此而哭泣。 = P – rebelliard 2010-10-12 01:02:02

3

的NHibernate的主要目的在Wikipedia article,以及被描述:

NHibernate的主要特徵是從.NET類到數據庫表(以及從CLR數據類型到SQL數據類型)的映射。 NHibernate還提供數據查詢和檢索功能。

NHibernate生成SQL命令並使開發人員免於手動數據集處理和對象轉換,使應用程序可以移植到大多數SQL數據庫,並且數據庫可移植性在很少的性能開銷下交付。

1

NHibernate使您不再重新發明車輪。 90%的時間你選擇文件新項目,它將成爲一個數據庫後端的CRUD(創建,讀取,更新和刪除)項目。 NHibernate爲你做了很多工作,希望能夠避免爲每個項目編寫一個新的數據訪問層的繁瑣工作。如果你寫數據庫,我會說是的,你應該看看NHibernate,但是有很多ORMS。我說試一試。

相關問題