我正在使用IRepository中的NEventStore.Domain project界面。 我想创建一个投影,它是给定聚合类型的所有聚合的列表。我将如何做到这一点:
因此,如果我有一个ReportBatch
聚合,我希望列出我保存的所有报告批次。我怎么能做到这一点?我用投影咆哮着错了树吗?当我收到Created
的{{1}}个事件时,我是否应该保存到ReportBatchList聚合。
答案 0 :(得分:2)
当我得到时,我应该只保存到ReportBatchList聚合 为ReportBatch创建事件。
没有。每次收到Created事件时,您都应该有一个写入读取模型的投影。然后,您将查询此读取模型以获取列表。读取模型可以是数据库(SQL或NoSQL),内存构造,文本文件等。
请注意,不是"给定聚合类型"的所有聚合的列表。它是一个读取模型,虽然读取模型可能知道聚合生成的数据,但它并不直接表示聚合。
事件采购是命令查询责任隔离(CQRS)的一种高级形式,其中写入(聚合等)和读取(投影和读取模型)在概念上完全独立。