我正在试用asp.net而且我被System.Data.Entity.Infrastructure.DbUpdateConcurrencyException
难倒了。我尝试在“删除”中删除对数据库的更改的行发生异常。行动方法。
这是我编辑方法的代码,完全正常:
public ActionResult Edit(int id)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
}
[HttpPost]
public ActionResult Edit(Movie movie)
{
db.Entry(movie).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
这是我的删除方法的代码,但没有!
public ActionResult Delete(int id)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
}
[HttpPost]
public ActionResult Delete(Movie movie)
{
db.Movies.Attach(movie);
db.Movies.Remove(movie);
//db.Entry(movie).State = System.Data.Entity.EntityState.Deleted;
//both the outcommented line above and the current method of marking for deletion result in the same exception on the line below.
db.SaveChanges();
return RedirectToAction("Index");
}
答案 0 :(得分:1)
[HttpPost]
public ActionResult Delete(Movie movie)
{
var dbMovie = db.Movies.find(movie.id);
db.Movies.Remove(dbMovie);
db.SaveChanges();
return RedirectToAction("Index");
}