我正在使用Entity Framework 4.3.1,我正在尝试将新记录插入到我的ProductVersion
实体所基于的表中。
ProductVersion
实体有2个属性构成名为ProductId
和ProductOrdinal
的表的复合主键。
每当有人更新产品条目时,我都会创建并将ProductVersion
实体传递回我的存储库,递增ProductOrdinal
属性,并尝试将该实体添加到上下文并保存。
我一直收到以下错误:
属性' ProductOrdinal'是对象关键信息的一部分,不能修改。
组成密钥的列都不是自动编号,我在POCO中注释了以下属性:
[Key, Column("PROD_Ordinal", Order=2), DatabaseGenerated(DatabaseGeneratedOption.None)]
public long ProductOrdinal { get; set; }
答案 0 :(得分:2)
Marc_S完全正确地评论了为什么这不起作用。
从异常和您的描述中,您似乎正在递增现有“ProductVersion”实例上的“ProductOrdinal”属性并尝试保存它。你可能想要做的是从现有实例创建一个'ProductVersion'的新实例,并增加'ProductOrdinal'属性并保存新实例。