2017-05-02 64 views
0

我正在使用EF UnitOfWorkPattern,它是在另一個存儲庫中使用一個不錯的方法嗎?例如,我有倉庫A,這個倉庫需要邏輯從倉庫B檢索數據。實體框架UnitOfWork模式

+0

這應該在服務級別完成,您可以從多個存儲庫檢索數據。 –

回答

2

我會說不。存儲庫通常將CRUD操作抽象出來,僅此而已。它們通常特定於一個「實體」或「表格」。

如果您需要「跨存儲庫」的功能,那麼您可能正在實施一些業務邏輯,這不是存儲庫層的一部分。

+0

我的理解是,使用UnitOfWork模式時,存儲庫不會擁有自己的上下文對象,而是會使用一個上下文對象將所有內容保存在一個事務中。因此,從這個角度來看,從另一個存儲庫訪問存儲庫類將不成問題。 – Thangadurai

+0

它可以做到。由於上下文對於每個存儲庫和uow都是相同的,因此它可以工作。但這不是這種模式的設計。倉庫將每個實體的CRUD操作抽象出來,UOW管理倉庫並提供交易行爲,交易行爲反過來又從你的「服務」或「管理者」或你稱之爲BLL組件的任何地方使用。 –

+0

同意。是的,倉庫不應該有任何業務邏輯(這需要訪問另一個倉庫或實體 – Thangadurai