DDD大集合

时间:2014-05-30 09:51:08

标签: c# domain-driven-design aggregate

我有一个Appointment聚合根,因为聚合在业务方面是有效的,它必须引用一些其他聚合,这会显着增加大小; ClientEmployeeService,开始/结束日期和时间。

Appointment从网络服务中重新水化,每次我想获得约会列表甚至只是一次预约时,获取所有这些信息似乎是不切实际的。

我一定做错了,ClientEmployeeService本身就是他们自己的存储库(如接口)的聚合根,因为它们都可以自己存在。

IIdentity聚合根中保留聚合的Appointment并在需要时单独加载它们(例如ClientIdEmployeeIdServiceId)?

我发现这是我第一次涉足DDD时非常常见的问题。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

聚合规则是无法从聚合根外部访问属于聚合的任何内容。通过拥有汇总的ClientEmployeeService部分,您就违反了此规则。

最好只为这些实体设置一个ID并分解你的聚合,这样它们就不会互相干扰。