セルフ トラッキング エンティティへの変更を保存するときに例外が発生します。
AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges.
この問題は、次のような他の質問で対処されていると思います:自己追跡エンティティ - オブジェクトのキー値が ObjectStateManager の別のオブジェクトと競合するため、AcceptChanges を続行できません
私の質問は、開発と本番の両方でこの問題をデバッグする最良の方法は何ですか. 例外を引き起こしているエンティティまたはエンティティ タイプの詳細をキャッチ/アクセスできる追加情報はありますか。
そうでない場合、別のオブジェクトを参照する重複キーを探してオブジェクト グラフをトラバースするために何かを書く必要がありますか? もしそうなら、誰もこれを経験していますか?
詳細情報:
私のシナリオは次のとおりです。クライアントは、他のエンティティへのさまざまな FK を持つすべてのエンティティのコレクションを含む WCF サービスを介してエンティティを取得します。これらの FK リレーションシップはすべて linq クエリに含まれているため、完全なオブジェクト グラフが得られます。
クライアントのビューは、パフォーマンスのためにルックアップ テーブルなどの静的データ用に以前にフェッチされたエンティティを使用します。User への FK を持つ Customer オブジェクトがある場合、これはサービスから取得されたときにロードされます。Order などの別のエンティティをオブジェクト グラフに追加し、Customer オブジェクトと同じ Id を持つこのオブジェクトに User プロパティを設定しますが、エンティティは別の時点で取得されたため、別の ObjectContext を使用します (つまり、オブジェクトは同じ ID ですが、オブジェクトの同じインスタンスではありません) このエラーが発生します。
他の質問へのリンクは、これを回避する方法を示していますが、エラーを追跡できるように、問題を引き起こしているエンティティに関する詳細情報を探しています。