【发布时间】:2014-10-23 09:54:56
【问题描述】:
我正在尝试使用 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; }
}
}
【问题讨论】:
-
你能显示
Item类吗?或者您是否正在以流利的方式设置任何额外内容? -
如果模型是从数据库生成的,它可能被映射为一个键。如果表没有定义主键,生成器将尝试选择应该用作键的字段。
标签: c# entity-framework orm entity-framework-6.1