1回のリクエストで同じプライマリキー値を持つエンティティを削除して追加する必要があります。エンティティフレームワーク:単一の要求で同じキーを持つエンティティを削除して追加する
以下はエラーを示すサンプルコードです:PRIMARY KEY制約 'PK_Table'の違反。オブジェクト 'dbo.Table'に重複キーを挿入できません。
context.Set<Entity>().Attach(existingEntityObj);
Entry(existingEntityObj).State = EntityState.Deleted;
context.Set<Entity>().Add(newEntityObj);
context.Entry<Entity>(newEntityObj).State = EntityState.Added;
context.SaveChanges();
オブジェクト(existingEntityObjとnewEntityObj)の両方が主キープロパティに同じ値を有すると仮定する。
ありがとうございます!
主キー制約を削除し、エンティティを削除し、エンティティを追加し、主キー制約を元に戻す必要があります。ただし、FKがそれを参照するときに主キー制約を削除することはできません。あなたがしていることは悪い考えのように聞こえる。新しいオブジェクトのデータで既存のオブジェクトを変更するだけではできませんか? – Pakman