我在使用 linq to sql 编辑 mvc4 框架中的对象时遇到一些问题。“tbBoeking”对象已由 Visual Studio 2010 生成并驻留在 .dbml 文件中。它刚刚生成,并且没有对其或数据库进行任何更改。
BoekingController.cs 中的代码:
//This class has been generated and resides in a .dbml file
private DataClassesDataContext db = new DataClassesDataContext();
//Display edit form
public ActionResult Edit(int id = 0)
{
tbBoeking boeking = db.tbBoekings.Single(p => p.boeknummer == id);
if (boeking == null)
{
return HttpNotFound();
}
return View(boeking);
}
//Process changes made in form
[HttpPost]
public ActionResult Edit(tbBoeking boeking)
{
if (ModelState.IsValid)
{
db.tbBoekings.Attach(boeking, true);
db.SubmitChanges();
return RedirectToAction("Index");
}
return View(boeking);
}
显示编辑表单工作正常,但是当我按下提交并调用第二个 Edit() 时出现问题:在 db.submitchanges() 上,我收到一个错误,简单地说:“未找到或更改行”。
我已经阅读了有关此错误的其他一些帖子,但它们对我没有帮助。我认为我在使用 Linq-to-sql 或并发时犯了一些基本错误。我是在错误的地方使用 Attach() 还是别的什么?
提前致谢,
枯萎病