使用規(guī)則
為持久化字段聲明訪問器(getters和setters)。Cat為它的所有可持久化字段聲明了getters和setters訪問器。用訪問器來替代直接訪問字段是個好習慣。也可以通過字段(field)來使用NHibernate。屬性不一定需要聲明為public的。NHibernate可以對default、protected、internal或private的屬性執(zhí)行持久化.
實現(xiàn)一個默認的構造方法(constructor):Cat有一個顯式的無參數(shù)默認構造方法。所有的持久化類都必須具有一個默認的構造方法(可以不是public的),這樣NHibernate就可以使用Constructor.Invoke()來實例化它們.
提供一個標識屬性(identifier property)(可選).
建議使用不是sealed的類(可選)。
優(yōu)勢
對象和關系數(shù)據庫之間的映射是用一個XML文檔(XML document)來定義的。這個映射文檔被設計為易讀的,并且可以手工修改。映射語言是以.NET為中心的,意味著映射是按照持久化類的定義來創(chuàng)建的,而非表的定義。在Hibernate中XML映射文檔可以手動定義,也有一些工具來輔助生成,包括Xdoclet、Middlegen和AndroMDA,但是在NHibernate文檔中并沒有上述的輔助工具,不過可以采用MyGeneration這樣的代碼生成工具來生成XML配置文檔。雖然NHibernate目前不是非常的成熟,還沒有達到實用化的水平,它經常在負荷有些大的時候崩潰,但是它脫胎于在Java社區(qū)有著巨大影響力的Hibernate,而且NHibernate在實際應用方面確實體現(xiàn)出了它的優(yōu)勢,基于上述原因NHibernate一定會被越來越多的開發(fā)人員所接受,而且一定會被標準化。
NHibernate功能
友善的VisualStudio:輕輕松松映射在VisualStudio中制定的基本C?;騐B.NET領域模型。不用特殊的父類或屬性。徹底支持承繼,部件和枚舉類型。迅速的開發(fā)進度:從您的域實體模型形成數(shù)據庫表。支持全部時興的關系型數(shù)據庫。支持最復雜的舊計劃方案。
很多的組件和專用工具:全文檢索。應用MicrosoftVelocity和Memcached開展集群范疇的緩存文件。業(yè)務流程認證標準。ReSharper外掛。古城堡活動內容。S#arp系統(tǒng)架構。還有很多。
完善的小區(qū):NHibernate是一個受歡迎的,持續(xù)增長的ORM,有著閱歷豐富的開發(fā)者小區(qū)。用以數(shù)千個商業(yè)服務和開源軟件。
NHibernate不但承擔從.NET類到數(shù)據庫表(及其從.NET數(shù)據類型到SQL數(shù)據類型)的映射,還給予數(shù)據統(tǒng)計和搜索作用。這樣可以大大減少開發(fā)設計時長,而這種開發(fā)設計時長要花在SQL和ADO.NET中的手動式數(shù)據處理方法上。