存储更新,插入或删除语句影响了意外的行数(0)

时间:2015-10-29 00:22:19

标签: asp.net-mvc edit savechanges

我正在申请保险申请。当我以委员会成员身份登录并尝试编辑请求时(仅将其状态编辑为"已批准"对于ex)我收到此错误:  存储更新,插入或删除语句会影响意外的行数(0)。自实体加载以来,实体可能已被修改或删除。

构成问题的一行与数据项目中的上下文类相似。

public virtual void Commit()
        {
            base.SaveChanges();
        }

这是我的模特:

public class Request
    {
        [Key]
        public int RequestId { get; set; }


        public DateTime Date { get; set; }


        public string nomBeneficiary { get; set; }

        [DataType(DataType.Upload)]
        public byte[] file { get; set; }

        public Member beneficiary { get; set; }

        public string status { get; set; }

        public string eMailBeneficiairy { get; set; }


    }

这是控制器:

public ActionResult EditRequest (int id)
        {

            RequestService requestService = new RequestService();

            Request request =requestService.GetRequestById(id);

            return View(request);

        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult EditRequest([Bind(Exclude = "RequestId,Date,nomBeneficiairy,file,beneficiare,eMailBeneficiairy")]Request request)
        {
            if (ModelState.IsValid) {
            RequestService requestService = new Requestervice();

            requestService.UpdateRequest(request);
            return View("requests");
            }
            return View(request);
            }

以下是观点:

@model Mutuelle.Domain.Entities.Request

@{
    ViewBag.Title = "EditRequest";
}

<h2>EditRequest</h2>

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Request</h4>
        <hr />
        @Html.ValidationSummary(true)
        @Html.HiddenFor(model => model.RequestId)

        <div class="form-group">
            @Html.LabelFor(model => model.status, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.status)
                @Html.ValidationMessageFor(model => model.status)
            </div>
        </div>



        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

1 个答案:

答案 0 :(得分:0)

由于您正在编辑,因此该对象应该已存在。但它并不依赖于背景;尝试使用Attach首先附加它,或者从上下文中查询对象并复制属性。有关详细信息,请参阅this

编辑:根据您的日期评论,您需要将其更改为可以为空:

public DateTime? Date { get; set; }

并且在附加之前在数据库或控制器中生成null,将其默认为大于1/1/1753的日期(SQL中允许的最小值为datetime)。