Оператор сохранения, обновления, вставки или удаления ошибки затронул неожиданное количество строк (0) - PullRequest
0 голосов
/ 17 мая 2019

Я использую Entity Framework и хочу, чтобы Admin одобрил / отклонил запрос в методе Details, используя две кнопки (одну для подтверждения, а другую для отклонения).Подтвердить это правда, а отклонить это ложь.После нажатия на одну из кнопок я хочу изменить поле RequestStatus с отправленного на утверждение / отклонение, но я получаю сообщение об ошибке в db.SaveChanges().Я искал эту ошибку, но до сих пор не понимаю.Может кто-нибудь объяснить, что означает эта ошибка?

System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: «Оператор хранилища, вставка или удаление затронул неожиданное количество строк (0).Объекты могут быть изменены или удалены с момента загрузки объектов.

Вот модель запросов

public class Request
      {
            [Key]
            [Display(Name = "N. Requisição")]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public int RequestID { get; set; }

            [Display(Name = "Utilizador")]
            public string User { get; set; }

            [Display(Name = "Data")]
            [DataType(DataType.Date)]
            [DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
            public System.DateTime RequestDate { get; set; }

            [Display(Name = "Comentários")]
            public string RequestComments { get; set; }

            [Display(Name = "Quantidade"), Required]
            public int ItemCount { get; set; }

            [Display(Name = "Material")]
            public string ItemDescription { get; set; }

            [Display(Name = "Estado")]
            public string RequestStatus { get; set; }



        }

Вот метод сведений

public ActionResult Details(int? id)
            {
                if (id == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                Request request = db.Requests.Find(id);
                if (request == null)
                {
                    return HttpNotFound();
                }
                return View(request);
            }

            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Details([Bind(Include = "RequestID,User,RequestDate,RequestComments,ItemCount,ItemDescription,RequestStatus")] Request request)
            {
                bool Status = true;

                if (Status)
                {
                    request.RequestStatus = "Aprovada";
                    db.Entry(request).State = EntityState.Modified;
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }

                return View(request);
            }


Here is the Details View


@model OnlineRequests.Models.Request

@{
/**/
ViewBag.Title = "Details";
}

<h2>Detalhes</h2>
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

<div>
    <h4>Requisição</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.User)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.User)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.RequestDate)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.RequestDate)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.RequestComments)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.RequestComments)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.ItemCount)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.ItemCount)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.ItemDescription)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.ItemDescription)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.RequestStatus)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.RequestStatus)
        </dd>

    </dl>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Aprovar" class="btn btn-success" />
        </div>
    </div>
</div>
}
<p>
    @Html.ActionLink("Editar", "Edit", new { id = Model.RequestID }) |
    @Html.ActionLink("Back to List", "Index")
</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...