Wie lösen DbUpdateConcurrencyException, wenn die Aktualisierung einer Zeile?
Ich bin mit dem entity framework code first-Ansatz für eine ASP.NET MVC-Anwendung. Nach der Bearbeitung einer Zeile, wenn die übermittlung für die Speicherung, die Veränderung, die ich bin immer der folgende Fehler für den http-post-Methode:
Eine Ausnahme des Typs
'System.Daten.Entität.Infrastruktur.DbUpdateConcurrencyException'
aufgetreten in EntityFramework.dll war aber nicht im Benutzercode behandelt.
Dies ist ein Fehler aufgetreten bei der db.SaveChanges().
db.Entry<Project>(EditedProj).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
Haupt-code:
[HttpGet]
public ActionResult Edit(int id)
{
using (var db = new ProjectContext())
{
return View(db.Projects.Find(id));
}
}
[HttpPost]
public ActionResult Edit(Project EditedProj)
{
using (var db = new ProjectContext())
{
db.Entry<Project>(EditedProj).State =
System.Data.Entity.EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Projects");
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich die Antwort gefunden. Ich war nicht vorbei-id-Wert für die Http-Post Methode Aktion.
Wie gesagt in diesem link
In meinem Fall die obige Aussage ist wahr, denn ich war versucht, eine Zeile zu aktualisieren, aber ohne id keine Zeile wurde aktualisiert. Daher die Ausnahme.
Es kann getan werden, mit einem versteckten input-element enthält die id. Der code unten zeigt, wie es in "Bearbeiten".cshtml –