0

私はこのコンテキストのものをまったく取得していません...コントローラーの作成アクションからこのスニペットを見てください:

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.

newPairPairは、数行上に作成されたクラスの新しいインスタンスであり、次のようdbに、コントローラーレベルで作成されたdbコンテキストのインスタンスです。

public class MoveController : Controller
{
    private ShepherdContext db = new ShepherdContext();
......

ここで何が起こっているのですか?

4

1 に答える 1