这些是我的实体和关系:
没有实体A,任何实体都不能存在。当A被删除时,所有其他实体也将被删除。因此A是我的聚合根。
但我不确定
1.) B is also an aggregate root for entity C,D and E
2.) E is also an aggregate root for entity F
1.) C,D and E can not exist without B being created
2.) F can not exist without E being created
我现在有3个聚合根,因此会创建3个存储库吗?
答案 0 :(得分:2)
如果没有关于您的域名的更多信息,则无法就聚合边界提出建议。实体之间的关系与实体关联的行为不相关。实体之间的关系不会自动转换为对象引用;关系也可以作为存储库实现。
聚合是一致性边界。换句话说,它聚合了在执行相关行为时必须保持一致的状态。在您的情况下,很可能每个实体都是一个聚合体。请查看effective aggregate design,以便更好地将域分解为聚合。