私は次のように2つのエンティティを持っています:
public class Package
{
public int PackageId { get; set; }
public int BusinessId { get; set; }
public string Name { get; set; }
}
と
public class Business
{
public int BusinessId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
パッケージを編集し、関連するビジネス エンティティを更新したいと考えています。私は次のことを試してきました:
[HttpPost]
public ActionResult Edit(Package package)
{
if (ModelState.IsValid)
{
db.Packages.Attach(new Package { PackageId=package.PackageId
});
db.Entry(package).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.GenreId = new SelectList(db.Businesses , "BusinessId", "Name", package.BusinessId);
return View(package);
}
コードは次のメッセージで停止します。
同じキーを持つオブジェクトが ObjectStateManager に既に存在します。ObjectStateManager は、同じキーを持つ複数のオブジェクトを追跡できません。
ここにあるような例を試してみました... http://blogs.msdn.com/b/efdesign/archive/2009/03/16/foreign-keys-in-the-entity-framework.aspx。 ..しかし、何が間違っているのかわかりません。
外部キーでエンティティを更新するにはどうすればよいですか?