2011-12-09 14 views
1

このアプリケーションでは、Jonathan OliverのEventStoreとCommonDomainを使用しています。イベントを格納するために使用するデータベースは、SQL ServerまたはOracleです。Howto:複数の集約の更新に単一トランザクションを使用する

特定の使用例では、1つのコマンドで複数の集約を更新する必要があります。私は(CQRSでは)理想的に1つのコマンドは1つの集約を更新すべきであることを認識していますが、私たちのケースでは複数のインスタンスを一度に更新する必要があります。

この操作をアトミックにする簡単な方法はありますか(2フェーズコミットを使用しないでください)、そうならどのように可能でしょうか?

編集:この質問は、EventStoreフレームワーク(およびおそらくCommonDomainフレームワークのリポジトリ)の使用に固有です。これは、トランザクション処理やユニット・オブ・ワーク・パターン(私がよく知っている)の一般的な質問ではありません。

+0

2つの集計に影響を及ぼすことは非常に疑わしいので、ユースケースをDDD foraに入れることを強くお勧めします。 OTOH、一般的なアドバイスはドメインサービスを使用することです(それほど有用ではありません)。技術的なレベルでは、ConnectionScopeまたはTransactionScopeを共有することができます(分散Txを意味するわけではありません)。 –

答えて

0

作業ユニットを試してみてください。それはあなたが原子を変更するのを助けるでしょう。ここにMSDNの実装方法のリンクがあります Repository and EF

関連する問題