私はページを作成しましたasp.net MVCデータベースにレコードを挿入するためのプレビューボタンを提供しています。それを保存します。私はプレビューページにモデルを渡すためにセッションを使用しています。プレビューページでは、データベースにセッション中のモデルを保存するボタンを作成しましたが、例外がスローされています"エンティティオブジェクトはIEntityChangeTrackerの複数インスタンスで参照できません"。 私は同じdbContextを使用しています。私はユーザーから与えられた多くのソリューションを試しましたが、私のために働いていません。私は例外をスローしているコードの部分を添付しています。私が間違っているところを見てください。ここで 作成:エンティティオブジェクトをIEntityChangeTrackerの複数のインスタンスで参照することはできません
は、私は、レコードvar model = Session[Constants.SessionVariables.ProjectModelForPreview] as Project;
if (create != null)
{
if (model.Id == 0)
{
if (model.IsFeatured)
{
foreach (var item in dbContext.Projects.Where(p => p.IsFeatured == true))
{
item.IsFeatured = false;
}
dbContext.SaveChanges();
}
dbContext.Entry(model).State = EntityState.Unchanged;
dbContext.SaveChanges();
TempData["SuccessMessage"] = "Project created successfully.";
return RedirectToAction("Index");
}
}
にあなたが同じコンテキストを使用していないことを保存しますあなたは次のリクエストで同じコンテキストを取得しますか? –
私はコンテキストを宣言したベースコントローラーを使用しています –
最初にレコードを作成してセッションに保存すると、別のコンテキストでそれをアタッチしようとしたときに2回目にエラーが発生することがあります。もし私が何かを見逃していなければ、あなたはもっと大きな問題を抱えています。 –