我试图使用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 回答
它似乎是一个损坏或错误映射的数据模型 .
我通过执行以下操作修复了它:
删除了.edmx模型中的表 .
然后我重新添加了表格 .
保存了模型
之后它正常工作 .
我的假设是EF在某种程度上错误地将Modified字段映射到数据库中的OK .