在n層體系結構中,放置對象 - 關係映射(OR/M)代碼的最佳位置在數據訪問層中。例如,數據庫查詢和更新可以委託給像NHibernate這樣的工具。但是,我想保留在數據訪問層內的所有對NHibernate的引用,以及遠離其下方或下方圖層的抽象依賴關係。這樣,我就可以交換或插入另一個OR/M工具(例如實體框架)或某種方法(例如簡單的香草存儲過程調用,模擬對象),而不會導致編譯時錯誤或整個應用程序的重大改進。可測試性是額外的好處。使OR或M鬆散耦合並從其他層抽象
有人可能會建議一個包裝(即接口或基類)或方法,將保持OR/M鬆散耦合,幷包含在1層?或者將我的資源指向有用的資源?
謝謝。
我還需要數據映射器或DAOS,因爲存儲庫將位於域模型和數據訪問層之間。在此處查看更多詳細信息:http://martinfowler.com/eaaCatalog/repository.html 域模型將包含存儲庫,但無法保存對數據訪問層的引用。因此,DAO需要注入存儲庫。 我的主要目標是爲每個數據訪問技術(例如NHibernate,實體框架,XML數據存儲...)創建基本的DAO類,並繼承一個通用接口。這樣,我可以隨意交換或混合它們,而無需重新編譯或重大返工。 – Genuine 2010-03-29 16:10:52
聽起來像你在正確的軌道上。 – 2010-03-29 16:19:28