私はインピーダンスのミスマッチに悩まされるかもしれませんが、私はIRepositoryと不変オブジェクトで見た例を調整しようとしています。リポジトリと不変オブジェクト?
私は、hundrdsのWebリクエストが「ワーキングセット」の製品で動作するカタログアプリケーションに取り組んでいます。カタログ全体のサブセットは、任意の時点で再生される傾向があります。
同時に、私たちのデータチームは絶えず製品データを更新するが - など新しい画像、更新価格、説明、など
パフォーマンスのために、私は不変として、製品を検討したほうだと私には思えます。それらはリポジトリによってロードおよびキャッシュされ、多くのスレッドが同じ製品オブジェクトに同時にアクセスできます。
しかし、このアイデアは、私がUpdate/Deleteメソッドで見たIRepositoryの例の多くで壊れているようです。スレッドが製品に書き込めるとすぐに、自分自身がレースやその他の不快感を感じるようです。
私はエンティティの変更がコンパニオンエディタオブジェクトを介して行われる「エディタ」モデルを構想しました。このオブジェクトは変更を維持し、問題の製品を誰もが使用できるように再読み込みするよう強制します。製品は決して変更されず、外部でのみ「編集」され、再ロードされます。
これは意味がありますか?私は彼らが記述したように、これはリポジトリで動作することができますか?
ありがとうございました!
おそらくマイケル・ハレンが提案した「編集ロック」を持つこの方法は、行く方法です - 本当にありがとう! – n8wrl
私は実際に製品のデータベースレコードを更新するかどうかはわかりません。製品の履歴を保持する必要がある場合は、置き換える方が理にかなっている可能性があります。 – grover