我试图了解聚合根源于我的实体框架数据模型的位置,因此我知道需要创建哪些存储库。
如果我在关系数据库术语中讲一秒钟,我有一个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)
答案 0 :(得分:2)
如果我正确理解您的模型,听起来您将拥有ExceptionGroup
的存储库,而ExceptionGroup
对象将封装Exception
个实例上的访问和操作(例如,通过揭露他们的集合)。通过这种方式,两个阶级之间的强制关系变得非常明显。
Jeff Sternal对这里的类似问题有一个很好的答案:What's an Aggregate Root?他的Order / LineItem示例似乎是类似的。