我刚开始使用DDD,并首先使用EF代码构建了一个存储库模式,到目前为止运行得非常好。现在假设我有一个聚合根调用Animal
,它有一个名为Status
的实体。
现在,如果我需要用Status
对象填充下拉列表,或者我需要用一个新对象替换animal中的Status
对象。我应该如何访问Status
集合?在这种情况下,Status
不是聚合根,只与Animal
关联才有意义,但它将具有标识。
我应该为Status
创建一个新的存储库,使其成为一个聚合根(它只是许多这样的事情之一,所以这可能会失控),或者我是否允许通过AnimalRepository
访问Status
集合,如GetStatusByID
或GetAllStatuses
?
同样的问题也适用于值对象,如颜色、品种、性别等。
这类东西我将视为查找/引用数据;我发现这个答案在过去很有用:在列表或下拉列表中加载一个值对象,DDD
但是基本上我会有一个单独的存储库