我正在尝试使用Entity Framework在没有PK的表中更新数据库中的行,但我目前无法继续收到错误:
属性“完成”是对象的关键信息的一部分,无法修改。
我试图修改的字段不是DB或模型上的PK或FK,因为它只是一个简单的True / False来确定待办事项是否完整。
我用来修改文件的代码是:
public void CompleteToDo(int toDoId, bool complete)
{
var original = Db.ToDoes.SingleOrDefault(t => t.ToDoId == toDoId);
if (original != null)
{
KnightOwlModels.ToDo todo = new KnightOwlModels.ToDo();
todo = original;
todo.Complete = complete;
Db.ToDoes.Attach(todo);
Db.SaveChanges();
}
}
代码失败的行是:
Db.ToDoes.Attach(todo);
到目前为止,我已尝试使用该模型,创建一个新模型,用传入的模型中的信息填充它,然后将其附加到数据库而不是修改传入的模型,但这似乎不起作用