DAO數據訪問對象是.NET中常用的模式嗎?我一直使用DAO作爲訪問我的數據層的方式。例如,我可能在我的EntityFramework ObjectContext上有一個精簡的接口,將我的所有ObjectSets公開爲IObjectSet。DAO模式在.NET中廣泛使用嗎?
複雜的查詢會被DAO公開,每個DAO都依賴於這個接口。我可能有一個ProductDAO,它公開的方法如GetProductsOnSale()
或GetInfrequenlySoldProducts()
。然後,我的控制器或演示者將使用這些方法,這些方法可能是虛擬的,以允許爲單元測試存儲特定結果。
那麼這是.NET中常用的習語嗎?出於某種原因,我使用此模式在線看到的絕大多數示例均基於Java。 DAO最佳實踐中的this question甚至被標記爲Java而不是C#。
沒有什麼錯誤使用一些來自其他社區,我只是有輕微的擔心,我身邊的人做不同的事情......
我的理解是存儲庫是公開所有IObjectSet成員的「事物」,而DAO是使用存儲庫構建查詢的類。這與您使用這些術語的方式是否一致? –
2011-04-26 19:32:05
@Adam - 實際上,'DAO'是實際的數據庫接口,'Repository'是對'DAO'的使用進行抽象以表示所謂的「內存」集合。 – Oded 2011-04-26 19:33:57
我明白了。你會調用那些需要一個存儲庫實例並暴露覆雜查詢的對象?當然這不是一個好主意,只是將所有可能的衆多quueries轉儲到您的存儲庫中...我會想象事情變得非常混亂 – 2011-04-26 19:36:29