2011-06-30 124 views
1

我想讓我的腦袋聚集根源於我的實體框架數據模型的位置,所以我知道我需要創建什麼樣的存儲庫。存儲庫模式 - 聚合根

如果我在關係數據庫術語中談論一秒,我有一個ExceptionGroup對象和一個Exception對象(不是system.exception!)。一個Exception屬於一個ExceptionGroup,並且不存在沒有ExceptionGroup的情況。

我應該爲每個對象或包含兩個方法的單個存儲庫有一個存儲庫嗎?如果我有一個單獨的存儲庫中的方法將是如下...

FindAllExceptionsByExceptionGroup(int GroupID) 
AddExceptionGroup(ExceptionGroup ExceptionGroup) - because an exception cannot exist without a group. 
AddException(DataAccess.Exception Exception) 
DeleteExceptionGroupByID(int GroupID) 
DeleteExceptionByID(int ExceptionID) 
DeleteExceptionByGroup(int GroupID) 

回答

2

如果我正確理解你的模型,它聽起來像是你將有一個存儲庫ExceptionGroupExceptionGroup對象將封裝訪問和操作在Exception實例(例如,通過暴露它們的集合)。這樣,兩類之間的強制關係變得非常明顯。

Jeff Sternal對這裏的一個類似問題有一個很好的答案:What's an Aggregate Root?他的Order/LineItem的例子似乎是類似的。