私は私とIDを持っており、私は私と一緒に名前を持っています。なぜ私はEFの簡単なアップデートのためにすべてのハードルに陥っていますか?
public void Foo(int id, string name)
{
}
を、私は、メソッド内のロジックのこの作品があります:だから本質的には、私の方法は、単にこれらのパラメータを持っていることをだ
User user = new User(){ Id = id, Name = name };
Db.Entry(user).State = System.Data.EntityState.Modified;
Db.SaveChanges();
を。何もない。ラディスラフMrnkaによって"An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key"
とこの回答:私はこのエラーを取得するAn object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key
はcontext.Entry(oldEntity).CurrentValues.SetValues(newEntity);
を使用することを示唆しているが、私は本当に私と一緒にoldEntityを持っていません。誰も私にちょうど私がどのようにユーザーの1つのプロパティを更新するのか教えていただけますか?私はナッツを手に入れている。
System.Data.EntityState.Modifiedを実行する代わりにselect from entityを使用して更新しないのはなぜですか? –
私はコードを最初に経験していないので(答えを投稿しません)、上記の 'Db'はデータベースコンテキストを参照していますか?そうであれば、モデル第1世界とデータベース第1世界のコンテキストは、作業単位パターンに基づいて短命のオブジェクトになるように設計されています。なぜこの操作を実行するために新しいコンテキストを作成しないのですか? –
@COLD TOLD:効率的にしたいから。私は自分のユーザーモデルで持っている数十のプロパティの単一のプロパティを更新するために2つのリクエストを起動したくありません。 – Jack