私の大学のプロジェクトとして.netアプリケーションを作っていて、セルフトラッキングエンティティセットに問題があります。レコードを選択してwcfサービスを通過させ、変更を加えてサーバーに再度渡します。そこで私は何が変更されたのかを比較したいので、文脈から同じレコードをもう一度選択する(これは古い値のレコードです)。その後、私はサービスを介して渡されたエンティティとコンテキストにApplyChangesを呼び出したい、とImがエラーを取得し比較した後:セルフトラッキングエンティティ
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.
私は(変更前と比較するために、変更後)二回同じエンティティをロードするからだと仮定します。変更を比較するための良い方法はありますか(私は別のdbテーブルで変更履歴を作成する必要があります)? 2つのクライアントが同じレコードを取得し、最初のレコードが変更されてdbに格納したい場合は、このエラーも発生しませんか?私は4.0を使用しています。
DTOをWCFサービスに渡し、痛みや髪をたくさん節約できます。 –