我有身份证,也有名字。所以本质上,我的方法只有这些参数:
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 个属性?我快疯了。