ASP.NET MVCアプリケーションで、次の2つの関連モデルを更新しようとしています。
if (ModelState.IsValid) {
_accommpropertyseasonrepo.Edit(accommPropertySeasonCreateViewModel.AccommPropertySeason);
_accommpropertyseasonrepo.Save();
_accommpropertyseasondetailrepo.Edit(accommPropertySeasonCreateViewModel.AccommPropertySeasonDetail);
_accommpropertyseasondetailrepo.Save();
return RedirectToAction("Details", new { id = id });
}
最初のものは問題なく通過していますが、2番目のものを更新しようとすると、並行性が発生し、以下のエラーがスローされます。
ストアの更新、挿入、または削除ステートメントが予期しない行数(0)に影響しました。エンティティがロードされてから、エンティティが変更または削除された可能性があります。ObjectStateManagerエントリを更新します
私がここでやろうとしていることを達成する方法は何ですか?
アップデート
_accommpropertyseasondetailrepo Edit方法は次のとおりです。
public void Edit(AccommPropertySeasonDetail entity) {
_context.Entry(entity).State = System.Data.EntityState.Modified;
}
_accommpropertyseasonrepo Edit方法は次のとおりです。
public void Edit(AccommPropertySeason entity) {
_context.Entry(entity).State = System.Data.EntityState.Modified;
}
更新2
アクションメソッド全体は次のとおりです。
public ActionResult SeasonEdit_post(int id, int subid,
[Bind(Exclude =
"AccommPropertySeason.CreatedBy,AccommPropertySeason.CreatedOn")]
AccommPropertySeasonCreateViewModel accommPropertySeasonCreateViewModel) {
if (ModelState.IsValid) {
_accommpropertyseasonrepo.Edit(accommPropertySeasonCreateViewModel.AccommPropertySeason);
_accommpropertyseasonrepo.Save();
_accommpropertyseasondetailrepo.Edit(accommPropertySeasonCreateViewModel.AccommPropertySeasonDetail);
_accommpropertyseasondetailrepo.Save();
return RedirectToAction("Details", new { id = id });
}
return View(accommPropertySeasonCreateViewModel);
}
アップデート
Brutal Truth:ビューの次のコード行を忘れたため、モデルはPKなしで戻ってきました:
@Html.HiddenFor(m => m.AccommPropertySeasonDetail.AccommPropertySeasonDetailID)
問題は解決しました!