.NET3.5アプリケーションでEFv1とVelocityキャッシュを使用しています。キャッシュされたオブジェクトは、データベース内のエンティティモデルの表現です。そこで、POCOアダプターでEFv1を使用することにしました。したがって、キャッシュからオブジェクトを読み取り、存在しない場合はデータベースからオブジェクトを読み取り、すぐにキャッシュするエンティティアクセスレイヤーがあります。更新が必要なユースケースでは、ダーティPOCOをデータベースで更新する必要があります。ここでは、変更を追跡するバッキングオブジェクトが必要なため、ここでPOCOアダプターとプロキシを直接使用することはできません。フレームワークからアダプタオブジェクトをハイドレイトしたことがないため、変更の検出は行われません。私が見る最も簡単なオプションは次のとおりです。
- 更新する前にエンティティを読んでください。POCOからアダプタ値を設定します。変化検出を軌道に乗せましょう。これは、多くの関連エンティティを指定するとコストがかかる可能性があるすべての更新の前に選択を行います。
- 新しいエンティティオブジェクトを作成します。POCOからエンティティキーとプロパティを設定します。変更内容を保存。これにより、プロパティ/関連エンティティが変更されていない場合でも、不要な書き込みが行われます。
問題の説明で明確になったことを願っています。提案してください。