5

我有一個關於實現存儲庫模式與我的數據模型的問題。我在網上搜索,看了很多帖子,但我沒有找到任何答案,這清除了我的疑惑。基本上我們的域模型如下所示 我們有一個客戶端對象,它有很多子對象,而一些子對象反過來將有一個子對象,並且在任何時間點都不需要這些子對象,而不需要它們的父對象,也不需要在應用程序中有任何意義。倉庫模式聚合和聚合根與實體框架4.0

client 
--> client zip codes 
--> client phone history 
--> client medical history 
--> client direct services 
     --> client direct service assessments 
     --> client direct service risk reductions 
--> client housing 
     --> client housing landlord 

它是這樣的。 所以從上面的表示我有一些聚合和根是客戶端對象,所以我想創建一個在作爲客戶端的聚合根級別的存儲庫。我的問題是我如何處理其他聚合。任何人都可以請提供一些關於此的想法。

謝謝, Ajay。

回答

6

一般來說,資源庫的責任是準備由程序其餘部分使用的聚合根。所以你應該查詢一個客戶端的存儲庫,它應該返回一個完整的客戶端對象,包括郵政編碼,電話歷史記錄,醫療歷史等。聚合根的想法是,沒有外部代碼應該不必擔心沒有客戶端那些其他聚合可用。

從另一個角度看,由於您創建的是客戶端存儲庫,而客戶端是聚合根,所以即使它們本身是聚合,它也是客戶端存儲庫的作業來組成所有子對象。

+0

這樣做基本上意味着在客戶端級別上只會有一個存儲庫,這也會加載聚合。如果是這樣的話,那就回答我的問題。感謝Domenic。 – ajay 2011-04-20 21:55:00

+0

是的,確切地說;客戶端級別只有一個存儲庫。同樣,在提供者級別將有一個存儲庫。一般來說,每個聚合根都有自己的存儲庫。 – Domenic 2011-04-20 21:56:54

+0

好的,回答我的問題。再次感謝。 – ajay 2011-04-20 22:01:01