2
我已閱讀了很多關於工作單元和存儲庫模式的信息。 我從未見過的是如何檢索數據。對於Select語句,UoW沒有意義。用存儲庫+工作模式單位選擇查詢
我將使用asp.net MVC與n層體系結構,這一點我從來沒有在任何教程或文章中看到:
在哪裏,我怎麼叫SELECT語句,有/無內連接,使用這些模式? 從服務層直接調用DataContext?
我已閱讀了很多關於工作單元和存儲庫模式的信息。 我從未見過的是如何檢索數據。對於Select語句,UoW沒有意義。用存儲庫+工作模式單位選擇查詢
我將使用asp.net MVC與n層體系結構,這一點我從來沒有在任何教程或文章中看到:
在哪裏,我怎麼叫SELECT語句,有/無內連接,使用這些模式? 從服務層直接調用DataContext?
工作單元用於更新模型。事實上,查詢你並不需要它。使用存儲庫模式時,所有與數據庫相關的選項(選擇,連接等)都是存儲庫實現的一部分。
當DI Container注入具體存儲庫時,存儲庫使用者(例如Controller)依賴存儲庫接口(抽象)。消費者從來沒有看到數據庫或事物,它只是看到應該返回控制器需要和理解的對象的存儲庫方法(即使你返回一個ROM實體,控制器不知道它是一個實體)。
一個重要的事情是瞭解庫接口定義了WHAT不是HOW。實施涉及「如何」。這意味着控制器不會構建查詢,存儲庫也會這樣做。你只是問它你想要什麼,它神奇地交付。
我看到的大部分存儲庫模式示例都使用單個SELECT語句。從來沒有一個複雜的查詢。即使是一個複雜的查詢,所有「clausules」:group by,order by,filters,進入Repository方法...或者這些過濾器(和排序..)將適合「服務層」? –
與查詢相關的所有內容都將進入回購的方法。該方法至多可以接受分頁和排序參數 – MikeSW