但是,對於經常要編寫數據庫訪問代碼的.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
這些接口將在後面的系列文章中逐壹介紹。下面也看壹個分頁的例子,來點感性的認識。