我正在使用来自NEventStore的IRepository接口。域项目。我想创建一个投影,它是给定聚合类型的所有聚合的列表。我该怎么做呢?
因此,如果我有一个ReportBatch
聚合,我希望列出我保存的所有报告批次。我怎样才能做到这一点呢?我是不是说错话了?我应该只是保存到ReportBatchList聚合当我得到Created
事件的ReportBatch
.
我应该只是保存到ReportBatchList聚合当我得到为ReportBatch创建事件。
。您应该有一个投影,每当读取模型接收到一个Created事件时,它都会写入该模型。然后,您将查询该读取模型以获取列表。读模型可以是数据库(SQL或NoSQL)、内存结构、文本文件等。
注意,它将不是是"给定聚合类型的所有聚合的列表"。它是一个读模型,虽然读模型可能知道聚合生成的数据,但它并不直接表示聚合。
事件溯源是命令查询责任分离(CQRS)的高级形式,其中写(聚合等)和读(投影和读模型)在概念上是完全分离的。