通常可以接受一个存储库可以访问另一个存储库吗?特别是在这种情况下,我有一个聚合根,它使用另一个聚合根来确定要添加的实体。它符合项目/项目类型关系。项目类型是聚合根的原因是它们可以在任何单个项目范围之外的管理工具中单独维护。
如果它确实重要,我只是通过存储库工厂实现创建我的存储库实例,所以我不会直接通过具体的类名创建它。聚合体在任何时候都不知道存储库。
编辑 - 更多信息:
具体实现是我们可以将图像附加到文档中。我们不仅可以管理文档上的图像,而且还有不同类型的图像(例如,类型被定义为如何实现,而不是扩展)。文档集合是系统中使用这些图像的少数几种其他对象之一,它们并不都使用相同的类型。虽然我们确实在域服务中附加了规则,但这更具体地适用于构建文档聚合。在构建聚合时,我们有五个特定类型的图像,以及其他两种类型中的一个。我们单独提取这些,因为它们存储在聚合中的单独列表中。验证不是问题,而是在组装文档时限制正在评估的图像类型。