4

私はEvent Storeをセットアップし、イベントをストリームに書き込み、サブスクライブし、履歴イベントを読み取ることができ、すべて正常に動作します。

ResolvedEventサブスクリプション ハンドラー メソッドに渡される にプロパティがあることがわかりLinkますが、ストリームに書き込むときに、このプロパティを「設定」するにはどうすればよいのでしょうか?

ソースコードを調べて、さまざまなメタデータプロパティを (JSON 表記を使用して) 設定しようとしましたが、機能するものは見つかりませんでした。

これについて私が間違った方法で行っている可能性と、私がやろうとしていること (イベントをストリームに書き込み、次に 2 番目のイベントを最初のイベントにリンクして、後で「返信」を見つけることができるようにする)別の方法で行う必要があります。

4

1 に答える 1

7

私はリンクがあなたがそれを意味すると思うものだと思いませんか? (実際に行うべきことであるドキュメントから何かを引用できる場合を除きます)

そのリンクは、他のさまざまなストリームから作成されたプロジェクションに使用されます。

例えば:

EvenStore ですべてのプロジェクションを有効にすると、すぐに実行できるグループ プロジェクションが得られます。このプロジェクションは、「group-id」の命名規則によってストリームをグループ化することによって機能します

いくつかの集計を独自のストリームに保存することを考えてください

  • 顧客-10001
  • 顧客-10002
  • 顧客-10003

それは素晴らしいことですが、これらのストリームのいずれかに発生するイベントをどのようにサブスクライブしますか。ここで、ビルドイン グループ プロジェクションが機能します。

プロジェクションである $ce-customer ストリームをサブスクライブします。

そのプロジェクションを実際に読むと、元のイベントへのリンクだけが得られます。これは、私が話しているLINKであり、混乱している可能性があります。

.NET クライアントのそのオプションを知っているので、resolveLinkTos

 Task<EventReadResult> ReadEventAsync(string stream, long eventNumber, bool resolveLinkTos);

trueこれをオンに設定するとresolveLinkTos、元のイベントがストリーム データに返されます (元のイベントへのリンクだけではありません)。

したがって、リンクされたすべてのストリームからすべてのデータが返されます。

于 2018-07-11T14:47:16.660 に答える