簡體   English   中英

DAO /存儲庫/ NHibernate和處理Edge DB案例

[英]DAO/Repository/NHibernate And Handling Edge DB Cases

讓我感到困擾的一件事是,如何在一個不屬於DAO或存儲庫管轄范圍的系統中處理數據庫操作,並且在書籍/博客中也很少提及。 我喜歡使用通用DAO /存儲庫的方法來處理常見的數據庫操作,但是如何處理不是實體的事物呢? 例如,假設我正在構建一個系統,並且在某些情況下,我需要調用存儲過程來運行批處理操作並僅返回成功代碼。 或者,我只需要從其他表中加載日期。 或者,我想從表中加載美國各州的列表。 這些情況確實會發生,並且它們實際上可能與系統中的實體或其他對象沒有任何關系。 在不丟棄討厭的“雜項” DB類的情況下,該類將放棄諸如NHibernate之類的手動使用ADO.NET進行這些類型的操作,OOP人群中還有哪些其他標准方法呢?

每個人都完全繞過DAO並直接使用ADO連接器(或本機驅動程序),並且沒有任何“討厭”或錯誤的地方。 如果這些確實是您的最佳選擇,那么您會期望哪種框架? 更糟糕的是,當人們將各種奇怪的惡作劇包在他們的DAO周圍,以“不要四處走動<在這里插入DAO”的名義來做某事時,它會變得很爛。

我的意思是,如果您有一個存儲的proc,那么您顯然已經確定數據庫不可知論已成為現實(無論如何,這都是一個高估的目標),那么為什么對使用ADO.Net存有疑慮? 只要在代碼中使其非常明確,就不要隱藏它。 大聲自豪地說:“我正在使用數據庫,但我不會輕信任何人的想法!”。 哦,請確保它仍然與您的其余邏輯分開。 我不希望我的單元測試因存儲的過程而變慢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM