C# 使用事件存储客户端API(.NET),如何写入流并将一个事件链接到另一个事件?

C# 使用事件存储客户端API(.NET),如何写入流并将一个事件链接到另一个事件?,c#,eventstoredb,C#,Eventstoredb,我已经建立了,并且可以愉快地将事件写入流,订阅和阅读历史事件,所有这些都很好 我可以看到,在传递给订阅处理程序方法的ResolvedEvent中有一个Link属性,但我想知道,当我写入流时,如何“设置”这个属性 我尝试设置各种元数据属性(使用JSON表示法),查看源代码,但没有找到任何有效的方法 有可能是我用了错误的方法,我想做的事情(将一个事件写入一个流,然后将第二个事件链接到第一个事件,以便以后可以找到“回复”)应该用另一种方法来完成。我不认为这个链接是你认为的意思?(除非您可以引用文档中的

我已经建立了,并且可以愉快地将事件写入流,订阅和阅读历史事件,所有这些都很好

我可以看到,在传递给订阅处理程序方法的
ResolvedEvent
中有一个
Link
属性,但我想知道,当我写入流时,如何“设置”这个属性

我尝试设置各种元数据属性(使用JSON表示法),查看源代码,但没有找到任何有效的方法


有可能是我用了错误的方法,我想做的事情(将一个事件写入一个流,然后将第二个事件链接到第一个事件,以便以后可以找到“回复”)应该用另一种方法来完成。

我不认为这个链接是你认为的意思?(除非您可以引用文档中的某些内容,而这些内容实际上是它应该做的)

该链接用于从各种其他流创建的投影

例如:

当您启用EvenStore中的所有投影时,您将得到一个开箱即用的组投影。此投影通过按“组id”命名约定对流进行分组来工作

考虑将几个聚合保存到它们自己的流中

  • 客户-10001
  • 客户-10002
  • 客户-10003
这很好,但是如何订阅这些流中发生的任何事件呢。这就是内置组投影的作用所在

您订阅$ce客户流,这是一个投影

当你真正阅读投影时,你将得到的只是原始事件的链接。这就是我所说的链接,也许你会混淆它

所以您知道.NET客户端中的选项
resolveLinkTos

 Task<EventReadResult> ReadEventAsync(string stream, long eventNumber, bool resolveLinkTos);
Task ReadEventAsync(字符串流、长事件号、bool resolveLinkTos);
如果在
resolveLinkTos
上将其设置为
true
,则原始事件将返回到流数据中(而不仅仅是原始事件的链接)


因此,它将返回所有链接流中的所有数据。啊,这是有意义的。多谢各位