1

我正在使用 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; }
4

1 回答 1

2

Marc_S 在他的评论中完全正确地解释了为什么这不起作用。

从异常和您的描述看来,您正在增加现有 'ProductVersion' 实例上的 'ProductOrdinal' 属性并尝试保存它。您可能想要做的是从现有实例创建一个新的“ProductVersion”实例,并增加“ProductOrdinal”属性并保存新实例。

于 2012-05-24T12:06:06.740 回答