私はこのコンテキストのものをまったく取得していません...コントローラーの作成アクションからこのスニペットを見てください:
if (ModelState.IsValid)
{
Individual target = db.Individuals.Where(i => i.ID == Target.ID).First();
target.LocationId = Destination.ID;
db.Entry(target).State = EntityState.Modified;
db.SaveChanges();
if (newPair != null)
{
db.Pairs.Add(newPair);
db.SaveChanges();
}
}
最初のSaveChanges();
ものは問題なく動作し、レコードはデータベースで更新されます。しかし、.Add()
2番目の直前の行SaveChanges();
はエラーになりますAn entity object cannot be referenced by multiple instances of IEntityChangeTracker.
newPair
Pair
は、数行上に作成されたクラスの新しいインスタンスであり、次のようdb
に、コントローラーレベルで作成されたdbコンテキストのインスタンスです。
public class MoveController : Controller
{
private ShepherdContext db = new ShepherdContext();
......
ここで何が起こっているのですか?