私は単純な関係を持っています:
関連する「Company」オブジェクトを持つ「Note」オブジェクトがあります。「メモ」を作成するときは、既存の「会社」を選択し、その他の必要なフィールドを入力します。
私の問題は、保存するたびに「Company」オブジェクトの新しいバージョンが挿入され、その理由がわかりません。
ここで受け入れられた回答のすべてのオプションを試しました既存のオブジェクトに新しいオブジェクトを挿入しますが、何も機能しません。
現在、私は次のことを行っています。
var company = db.Company.FirstOrDefault(i => i.ID == note.Company.ID);
note.Company = company;
db.Notes.AddObject(note);
db.ObjectStateManager.ChangeObjectState(company, EntityState.Unchanged);
db.ObjectStateManager.ChangeObjectState(note, EntityState.Added);
db.SaveChanges();
ただし、新しい「会社」オブジェクトを追加し続けます。奇妙なのは、すべてのフィールドを追加するのではなく、CompanyName" フィールドだけを追加する (そして新しい Id を作成する) ことです。