2010-12-02 4 views
0

エンティティフレームワークでSelfTrackingを使用しています。クライアントのselfTrackingエラー

問題は、データを保存するとすべて正常に動作しますが、2回目に保存すると新しいオブジェクトを追加したいのですが、古いオブジェクトを更新したい場合や、古いオブジェクトを更新したい場合はanythjingを実行しません。

以下で説明します。

私はユーザーエンティティを持っています。私はそれを作成し、sthを行い、コンテキストを作成し、それを保存し、コンテキストを破棄しますが、ユーザーは破棄されません。

正常に動作し、ユーザーはデータベースに保存されます。それから私は同じメソッドを呼び出します。新しいコンテキストを作成して保存します。重複したキー違反があります(ユーザーを更新する必要がありますが、挿入しようとしていることはわかりません)。

Context.User.ApllyChanges(MyUser); Context.SaveChanges();

同じエラーが発生するたびに異なるバリエーションを試しました。私は間違って何をしていますか?

ありがとうございました。

[保存]をクリックすると、新しいコンテキストが作成されますが、私は同じEntityObjectを持っています。次に、新しいオブジェクトを追加したいと考えています

答えて

1

私はPOCO(セルフトラッキングではありません)を使っていますが、それも当てはまると思います。

新しいものか更新かを知っていて、そのオブジェクトをコンテキストに追加し、その状態をmodifiedに変更する必要があります。追加したままにしておくと、EFはそれをdbに挿入しようとします。

+0

これは、SelfTrackingがオブジェクトに何が起こったかを知っているケース全体が、変更されたものか何かが追加されたものではありません。私はそれを望むUserオブジェクトの保存状態をリセットして、次回に変更していない場合は保存する必要があります:/ユーザーがたくさんのコレクションを持っている場合:製品、車...どこでも変更されていますか? – gruber

+0

私はそれが私のことを知っています:)しかし、私は自己トラッキングでは働いていません...しかし、あなたのサーバー側はクライアントで何が起きたのか、どうしたら分かりますか? – sebagomez

+0

selfTrackingオブジェクトには何が起こったかという情報があるmetaDataがあるためです。 – gruber

関連する問題