我正在尝试使用 DDD 和 CQRS。
我得到了这两个解决方案:
将 AggregateId 添加到我的命令/事件中。很好,我可以使用我的命令作为我的 Web 服务的参数,我也可以将我的命令的一些实例返回到我的表单中,以表示“你可以执行这个命令,他的一个和这个”
将我的完整聚合添加到我的命令/事件中。这很好,因为我确信如果有很多事件发生,我不会加载我的聚合 100 次,我只会传递我的引用(例如,我不会将它加载到我的命令的验证器和我的命令处理程序)。但我会添加为每个只有 id 的命令创建一个参数类。
现在我在命令中有 id,在事件中有完整模型(我相信我的工作单元可以缓存 Load(aggregateId),所以我不会为 1 个命令执行相同的请求 100)。
有没有正确/更好的方法?