";该物业';修改';是对象的一部分';s密钥信息,无法修改
本文关键字:修改 密钥 信息 一部分 quot 对象 | 更新日期: 2023-09-27 18:27:28
我试图使用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; }
}
}
它似乎是一个损坏或映射错误的数据模型。
我通过以下操作修复了它:
- 删除了.edmx模型中的表
- 然后我重新添加了表格
- 保存模型
之后它就正常工作了。
我的假设是EF在某种程度上错误地将Modified字段映射到了数据库中的OK。