首页 文章

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

提问于
浏览
0

我试图使用EF 6.1更改我的行中的字段,我收到以下错误:

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

然而,修改不是主键,也不是任何化合物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

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

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

    • 删除了.edmx模型中的表 .

    • 然后我重新添加了表格 .

    • 保存了模型

    之后它正常工作 .

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

相关问题