实体框架SaveChanges乐观并发问题

时间:2015-10-07 16:03:48

标签: c# entity-framework concurrency

我不断收到错误存储更新,插入或删除语句影响了意外的行数(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?

非常感谢任何见解。

0 个答案:

没有答案