我已经设置了活动商店 https://eventstore.org,并且可以愉快地将事件写入流、订阅和读取历史事件,一切正常。
我可以看到在ResolvedEvent
传递给我的订阅处理程序方法有一个Link
属性,但我想知道当我写入流时,如何“设置”此属性?
我尝试过设置各种元数据属性(使用 JSON 表示法),查看源代码,但没有找到任何有效的东西。
我可能会以错误的方式处理这个问题,以及我正在尝试做的事情(将一个事件写入流,然后将第二个事件链接到第一个事件,以便我稍后可以找到“回复”)应该以另一种方式完成。
我不认为Link是你想象的那个意思吗? (除非您可以引用文档中的某些内容,而这正是它实际上应该做的事情)
该链接用于从各种其他流创建的投影。
例如:
当您启用 EvenStore 中的所有投影时,您将获得一个开箱即用的组投影。该投影的工作原理是通过“group-id”命名约定对流进行分组
考虑将多个聚合保存到它们自己的流中
- 客户-10001
- 客户-10002
- 客户-10003
这很棒,但是您如何订阅这些流中发生的任何事件。这就是内置组投影发挥作用的地方
您订阅 $ce-customer 流,这是一个投影。
当您实际阅读该投影时,您将获得的只是原始事件的链接。这是LINK我正在谈论的,也许你会感到困惑。
所以您知道 .NET 客户端中的该选项resolveLinkTos
Task<EventReadResult> ReadEventAsync(string stream, long eventNumber, bool resolveLinkTos);
如果您将其设置为true
on resolveLinkTos
那么原始事件将在流数据中返回(而不仅仅是原始事件的链接)。
因此它将返回所有链接流中的所有数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)