2015-07-21 39 views
0

我正在使用NEventStore.Domain projectIRepository接口。 我想創建一個投影,它是給定聚合類型的所有聚合列表。我將如何去做這件事:NEventStore獲取投影,其中列出了給定類型的所有集合

所以,如果我有一個ReportBatch聚合,我期待列出我保存的所有報告批次。我怎樣才能做到這一點?我是否用預測咆哮錯誤的樹?當我得到ReportBatchCreated事件時,是否應該將其保存到ReportBatchList聚合中。

回答

2

當我得到 創建ReportBatch的事件時,我應該只保存到ReportBatchList聚合。

不可以。您應該有一個投影,在每次接收到創建事件時寫入讀取模型。然後,您將查詢此讀取模型以獲取列表。讀模式可能是一個數據庫(SQL或NoSQL的),在內存中的結構,文本文件等

注意,它會是「給定的聚合類型的所有聚集的列表」 。它是一個讀取模型,雖然讀取模型可能知道由聚合生成的數據,但它不直接表示聚合。

事件採購是命令查詢責任分離(CQRS)的一種高級形式,其中寫入(聚合等)和讀取(預測和讀取模型)在概念上完全分離。

+0

+1提到ES(作爲概念)與CQRS無關,但它們幾乎總是一起使用 – MikeSW