"该物业'已修改'是对象的关键信息的一部分,不能修改

时间:2014-10-23 09:54:57

标签: c# entity-framework orm entity-framework-6.1

我正在尝试使用EF 6.1更改行中的字段,并且收到以下错误:

  

属性'Modified'是对象的关键信息的一部分   无法修改。

然而,修改不是主键,也不是任何化合物PK的一部分。

然而,这是我搜索条件的一部分。

var item = _src.Items.Where(x => x.Modified).OrderBy(x => x.DateModified).FirstOrDefault();
 ...
 MarkItemAsSynced(item)


    private void MarkItemAsSynced(Item item)
    {
        item.Modified = false;     
        _src.SaveChanges();        <<<< ERROR THORWN
    }

可能导致此问题的原因是什么?

再次确认,项目“已修改”不是PK。

表确实有一个定义的PK。

模特课程:

    public partial class Item
    {
        public int Id { get; set; }
        ...
        public bool Modified { get; set; }            
    }
}

1 个答案:

答案 0 :(得分:0)

它似乎是一个损坏或错误映射的数据模型。

我通过执行以下操作修复了它:

  1. 删除了.edmx模型中的表格。
  2. 然后我重新添加了表格。
  3. 保存模型
  4. 之后它正常工作。

    我的假设是,EF在某种程度上错误地将Modified字段映射到数据库中的OK。