属性“完成”是对象的关键信息的一部分,无法修改

时间:2016-12-21 01:05:48

标签: c# entity-framework

我正在尝试使用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);

到目前为止,我已尝试使用该模型,创建一个新模型,用传入的模型中的信息填充它,然后将其附加到数据库而不是修改传入的模型,但这似乎不起作用

0 个答案:

没有答案