使用 Event Store Client API (.NET),我如何写入流并将一个事件 link 写入另一个?
Using the Event Store Client API (.NET), how to I write to a stream and link one event to another?
我设置好了Event Store,可以愉快的写事件到流,订阅,读取历史事件,一切正常。
我可以看到在传递给我的订阅处理程序方法的 ResolvedEvent
中有一个 Link
属性,但我想知道当我写入流时如何, 我 'set' 这个 属性?
我已经尝试设置各种元数据属性(使用 JSON 表示法),查看源代码,但没有找到任何有效的方法。
我可能以错误的方式解决这个问题,而我正在尝试做的事情(将一个事件写入流,然后 link 第二个事件写入第一个,所以我稍后可以找到 'reply')应该用另一种方式完成。
我不认为Link是你认为的意思? (除非你能从文档中引用一些它实际上应该做的事情)
Link 用于从各种其他流创建的投影。
例如:
当您启用 EvenStore 中的所有投影时,您将获得开箱即用的组投影。此投影通过按 "group-id"
的命名约定对流进行分组来工作
考虑将多个聚合保存到它们自己的流中
- 客户 10001
- 客户 10002
- 客户 10003
这很好,但是您如何订阅发生在这些流中的任何事件。这就是内置组投影发挥作用的地方
您订阅了 $ce-customer 流,这是一个投影。
当您真正阅读该投影时,您将得到的只是原始事件的 link。这就是我正在谈论的 LINK,也许你会混淆。
所以你知道 .NET 客户端中的选项 resolveLinkTos
Task<EventReadResult> ReadEventAsync(string stream, long eventNumber, bool resolveLinkTos);
如果您在 resolveLinkTos
上将其设置为 true
,则原始事件将返回到流数据中(不仅仅是原始事件的 link)。
因此它将 return 来自所有 linked 流的所有数据。
我设置好了Event Store,可以愉快的写事件到流,订阅,读取历史事件,一切正常。
我可以看到在传递给我的订阅处理程序方法的 ResolvedEvent
中有一个 Link
属性,但我想知道当我写入流时如何, 我 'set' 这个 属性?
我已经尝试设置各种元数据属性(使用 JSON 表示法),查看源代码,但没有找到任何有效的方法。
我可能以错误的方式解决这个问题,而我正在尝试做的事情(将一个事件写入流,然后 link 第二个事件写入第一个,所以我稍后可以找到 'reply')应该用另一种方式完成。
我不认为Link是你认为的意思? (除非你能从文档中引用一些它实际上应该做的事情)
Link 用于从各种其他流创建的投影。
例如:
当您启用 EvenStore 中的所有投影时,您将获得开箱即用的组投影。此投影通过按 "group-id"
的命名约定对流进行分组来工作考虑将多个聚合保存到它们自己的流中
- 客户 10001
- 客户 10002
- 客户 10003
这很好,但是您如何订阅发生在这些流中的任何事件。这就是内置组投影发挥作用的地方
您订阅了 $ce-customer 流,这是一个投影。
当您真正阅读该投影时,您将得到的只是原始事件的 link。这就是我正在谈论的 LINK,也许你会混淆。
所以你知道 .NET 客户端中的选项 resolveLinkTos
Task<EventReadResult> ReadEventAsync(string stream, long eventNumber, bool resolveLinkTos);
如果您在 resolveLinkTos
上将其设置为 true
,则原始事件将返回到流数据中(不仅仅是原始事件的 link)。