我不断收到错误存储更新,插入或删除语句影响了意外的行数(0)。自实体加载后,实体可能已被修改或删除。刷新ObjectStateManager条目。我理解错误,但不是在我想要做的事情的背景下。我试着简短地说明我的例子:
[HttpPost]
public ActionResult Edit(AccountViewModel model)
{
if (ModelState.IsValid)
{
var corp = dataAccess.GetCorporation(model.CorporationId);
var prog = dataAccess.GetProgram(model.ProgramId);
AccountModel account = dataAccess.GetAccount(model.Id);
account.Program = prog;
account.Corporation = corp;
dataAccess.UpdateAccount(account);
return RedirectToAction("Edit", new { id = account.Id });
}
}
这些值的cshtml:
@Html.DropDownListFor(x => x.ProgramId, Model.Programs, "", new { @class = "span8" })
@Html.DropDownListFor(x => x.CorporationId, Model.Corporations, "", new { @class = "span8"})
并且viewmodel具有以下值:
public CorporationModel Corporation { get; set; }
public ProgramModel Program { get; set; }
public int? CorporationId { get; set; }
public int? ProgramId { get; set; }
当上下文尝试保存更改时,它会继续在公司上失败,但不会在程序中失败,即使它们的处理方式完全相同。此外,在尝试进行保存时,公司没有同时更改。
为什么这只发生在帐户的公司模型而不是ProgramModel?
非常感谢任何见解。