私はIDを持っており、名前も持っています。したがって、本質的に、私のメソッドには次のパラメータがあります。
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();
それでおしまい。特別なことは何もありません。このエラーが発生します:"An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key"
Ladislav Mrnkaによるこの回答:同じキーを持つオブジェクトがObjectStateManagerにすでに存在します。ObjectStateManagerは、同じキーを持つ複数のオブジェクトを追跡できません
使用することを提案しますcontext.Entry(oldEntity).CurrentValues.SetValues(newEntity);
が、私は実際にはoldEntityを持っていません。誰かがユーザーの1つのプロパティだけを更新する方法を教えてもらえますか?私はナッツを手に入れています。