首页 > 解决方案 > CQRS(事件溯源)读取多个聚合

问题描述

我有 2 个聚合,它们具有一对多的关系。例如,我有一个问题列表,我想将其中一些添加到问卷中,其中一些是强制性的,必须添加到所有问卷中,有些则不是,由问卷的创建者选择。

假设我正在使用事件溯源和 CQRS。我创建了问题列表,并且我想将强制性问题添加到问卷中。通常我会做

questionaire.AssignQuestions(questions.Where(q => q.isMandatory).Select(q => q.Id))

相似的东西。但在 CQRS 中,我不应该为此使用查询模型。但是在命令模型中我使用的是事件存储,所以我必须重播所有问题的所有事件,这似乎不合理。

很可能我的模型不够面向事件,但在这一点上我真的没有更好的主意。我应该如何建模?

谢谢

标签: domain-driven-designcqrsevent-sourcingevent-driven-design

解决方案


您的命令处理程序可以查询读取模型以检索问题 ID 列表以形成问卷。

但在 CQRS 中,我不应该为此使用查询模型。

这只是一个虚假的神话


推荐阅读