0

我在使用 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() 还是别的什么?

提前致谢,

枯萎病

4

1 回答 1

0

是否填写了所有必需的信息?此外,您是否有某种可能需要更新的时间戳。如果版本控制系统到位,我听说过忽略 asUpdated 标志的代码。该错误可能非常普遍,因此检查其他一些内容会有所帮助

如果上述建议没有帮助,那么我将运行 SQL 分析器跟踪以查看正在馈送到服务器的 SQL。

于 2012-07-09T13:09:00.827 回答