通过ids检索实体引用其他聚合

时间:2018-05-21 17:02:58

标签: domain-driven-design aggregateroot

一个聚合必须通过id引用其他聚合,例如:order stores userId。因此,如果我需要用户实体在订单聚合中执行某些操作,我应该像这样传递它:order.doSomthing(user)。但是,我应该在应用服务或域服务中检索用户?

1 个答案:

答案 0 :(得分:0)

你没有。

聚合操作/仅依赖于它拥有的数据。这适用于写入但也适用于读取。

如果聚合(例如User)需要来自另一个聚合的某些数据,例如Order,那么应用程序服务(或最可能的Saga /进程管理器)将从{{{{}获取数据。 1}}并将其传递给Order

User