1

Entity Framework 4.3.1 を使用しており、エンティティの基になっているテーブルに新しいレコードを挿入しようとしていますProductVersion

エンティティには、 および とProductVersion呼ばれるテーブルの複合主キーを構成する 2 つのプロパティがあります。ProductIdProductOrdinal

誰かが製品エントリを更新するたびに、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 に答える