2011-06-30 91 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的例子似乎是类似的。