0

私はCQRSを初めて使用し、コマンドが顧客オブジェクトにアドレス変更を書き込む方法について混乱しています。

顧客情報を2つのテーブルに分割したとしましょう

顧客-ドメインデータベース

アクティブプリファード

Customer_Readデータベース

名前、

住所、

電話、

Eメール

ユーザーが顧客の住所を変更します。アドレスフィールドはすべて読み取りデータベースにあります。住所情報を保持しているクエリ対応テーブルが3つ以上ある場合があります。

CQRS実装(サンプル)を理解している場合、カスタマードメイン(削除された集約ルート)は、各テーブルを更新するために複数のハンドラーによって処理される必要があるアドレス変更に関するイベントを公開する必要があります。

カスタマーオブジェクトの状態を変更しない場合、これを実装するにはどうすればよいですか?ドメインは、別のデータベースにアドレスがあることを知っている必要がありますか?

前もって感謝します。

よろしく、

3月

アップデート -

ネット上でさらに投稿を行った後、コマンドによって状態が変更されない場合、ドメイン自体を保存するイベントは生成されませんが、クエリ/モデルフレンドリテーブルのアドレスを変更するためにイベントが適用されると思います。

4

1 に答える 1

1

書き込み永続性のどこかにドメインデータを永続化する必要があります。このようにして、アドレスはこの永続ストアに保存され、イベントは変更後に公開されます。

こちらです:

  • 変更がなかった場合-イベントの公開をスキップできます
  • ドメインは、自分のイベントにサブスクライブされている(またはされていない)オブジェクトについて何も知る必要はありません。

このロジックは、リレーショナルDB(たとえば、NHibernateを使用したMS SQL)での永続性とイベントソーシングアプローチの両方に適用されます。

于 2010-10-01T08:08:01.600 に答える