0

内部に EntityCollection を持つオブジェクトがあります。新しいエンティティを追加するだけで、すべてうまくいきます。ここでそれを行うコード:

Context.ApplyChanges()
Context.SaveChanges()

しかし、エンティティを更新しようとすると、次のメッセージが表示されます。

オブジェクトのキー値が ObjectStateManager 内の別のオブジェクトと競合するため、AcceptChanges を続行できません。AcceptChanges を呼び出す前に、キー値が一意であることを確認してください。

同じコレクション オブジェクトを使用する場合でも。つまり、新しい場合はデータベースに保存されるため、コレクション内に同じエンティティ オブジェクトが存在することはありません。しかし!コレクションに別のエンティティに同じコードを適用しようとすると、それらは保存されますが、オブジェクト (コンテナ) に適用しようとすると、このエラーが発生します。

助けてくれてありがとう

4

2 に答える 2

0

モデルまたはテーブル スキーマから何かを省略したと思われます。これは、モデルの主キーが自動生成されると予想されていたが、テーブル/モデル コードでそのように定義されていない場合に期待することです。コレクション内のオブジェクトの主キーをすべてゼロに設定すると、2 番目のオブジェクトを挿入しようとすると主キー違反が発生します。

于 2011-03-23T02:17:27.757 に答える