古詩詞大全網 - 成語經典 - NHibernate已經足夠了嗎?

NHibernate已經足夠了嗎?

並且在博客園開了壹個專欄寫了壹系列的文章來介紹如何使用它。到2005年後半年的時候,國內類似的代碼生成工具已經開始“泛濫”了,O/RM壹下子流行起來。在2005年底,我開始關註NHibernate,並逐漸轉移到NHibernate上面來,對XCodeFactory的依賴也越來越小了。畢竟,NHibernate是如此得強大,以至於我不再需要XCodeFactory。

但是,對於經常要編寫數據庫訪問代碼的.NET開發人員而言,擁有NHibernate就已經足夠了嗎?我認為是不夠的。NHibernate在基於對象方面做得非常好,這也是它初始的目標,它非常出色地實現了這個目標。但是在O/RM之外了?比如,我們需要進行批量的更新、刪除等,使用NHibernate進行類似的操作不僅繁瑣而且效率低下。當然,這些內容不是NHibernate的職責,NHibernate也不用關心這些O/RM之外的東西。但是,我們也許都知道了,NHibernate需要另外壹個工具來作為有力的補充,這個補充主要基於關系、而不是對象來操作數據庫中的數據。

有人選擇了EnterpriseLibrary中的數據訪問Block作為O/RM之外的補充,這很不錯。而DataRabbit是另外壹個選擇。

相信來我blog的朋友都壹定知道ESFramework,ESFramework源於EnterpriseServerBase類庫的Network命名空間,而DataRabbit來源於EnterpriseServerBase類庫的DataAccess命名空間,EnterpriseServerBase.DataAccess也是XCodeFactory核心庫。DataRabbit中包含多個基於關系的數據訪問接口,並且內置了對SqlServer、Oracle、Ole的支持,如果要支持其它類型的數據庫,只需實現相應的接口即可,並且可以插件的形式提供。

(1)簡化通常的數據訪問,體現在IADOBase接口,IADOBase接口和以下所有接口均獨立於數據庫類型。

(2)數據分頁 IPagerManager

(3)事務 Transaction

(4)分布式事務 Distributed

(5)操作數據大綱(DataSchema) IDataSchemaOperator ,比如獲取某個表的大綱結構(Column信息、主鍵信息、外鍵信息),依據大綱在指定的數據庫中創建表

(6)數據庫適配器插件 IADOBaseAddin

(7)簡單數據遷移 SimpleDataTransfer

這些接口將在後面的系列文章中逐壹介紹。下面也看壹個分頁的例子,來點感性的認識。