私はインピーダンスの不一致によって運命づけられているかもしれませんが、IRepository と不変オブジェクトで見た例を調整しようとしています。
私は、何百もの Web リクエストが製品の「ワーキング セット」で動作するカタログ作成アプリケーションに取り組んでいます。カタログ全体のサブセットが常に使用される傾向があります。
同時に、当社のデータ チームは常に製品データを更新しています (新しい画像、更新された価格、説明など)。
パフォーマンスのためには、製品を不変と考えたほうがよいように思えます。それらはリポジトリによってロードおよびキャッシュされ、多くのスレッドが同じ製品オブジェクトに同時にアクセスできます。
しかし、この考えは、私が Update/Delete メソッドで見た IRepository の例の多くで壊れているようです。
そこで私は、エンティティへの変更がコンパニオン 'editor' オブジェクトを介して行われ、変更を保持し、問題の製品を強制的にリロードして全員が使用できるようにする 'editor' モデルを想定しました。製品が変更されることはありません。外部から「編集」されて再ロードされるだけです。
これは意味がありますか?説明されているように、これはリポジトリで機能しますか?