我有一个Appointment
聚合根,因为聚合在业务方面是有效的,它必须引用一些其他聚合,这会显着增加大小; Client
,Employee
,Service
,开始/结束日期和时间。
Appointment
从网络服务中重新水化,每次我想获得约会列表甚至只是一次预约时,获取所有这些信息似乎是不切实际的。
我一定做错了,Client
,Employee
和Service
本身就是他们自己的存储库(如接口)的聚合根,因为它们都可以自己存在。
在IIdentity
聚合根中保留聚合的Appointment
并在需要时单独加载它们(例如ClientId
,EmployeeId
, ServiceId
)?
我发现这是我第一次涉足DDD时非常常见的问题。
感谢您的帮助
答案 0 :(得分:1)
聚合规则是无法从聚合根外部访问属于聚合的任何内容。通过拥有汇总的Client
,Employee
和Service
部分,您就违反了此规则。
最好只为这些实体设置一个ID并分解你的聚合,这样它们就不会互相干扰。