如何将事件的版本附加到流中

时间:2017-02-08 10:50:08

标签: c# get-event-store

我使用C#API AppendToStreamAsync()调用写入EventStore流。我看到虽然这会返回一个WriteResult,但是不会返回新附加事件的版本。我不能依赖NextExpectedVersion,因为可能有多个客户端写入此流。

我可以订阅该流并等待"我的"要结束的事件, 但是我错过了其他的东西,documentation很轻,甚至没有提到返回的类型。

什么被认为是获得此号码的最佳方式?

1 个答案:

答案 0 :(得分:0)

不需要版本,因为在编写流之前,您知道聚合(流)的版本,因此当写入成功时,您就知道版本。

在将新事件写入流之前,您必须先读取流以重新合并聚合。然后你知道版本。因为当另一个编写器写入同一个流时,您必须首先拥有新状态。 (如果您在内存中使用聚合,则可以从聚合中的当前版本进行查询)

如果不需要乐观锁定,则可以在编写流时提供任何版本。 (当流只是一个记录流时可以这样做)