MVC#Linq to SQL SubmitChanges不工作

时间:2011-12-21 15:39:22

标签: asp.net-mvc linq-to-sql

我有以下代码 - truck_mng是一条记录,作为我需要更新的数据:

    public ActionResult Edit(Truck_Mng truck_mng) 
    {       
      if (ModelState.IsValid)       
      { 
       DataContext.SubmitChanges();           
       return RedirectToAction("Index");       
      }  
      return RedirectToAction("index"); 

}

记录未更新。任何的想法?该表有一个主键。

1 个答案:

答案 0 :(得分:2)

我猜Truck_Mng是你DataContext的实体类吗?

您必须首先将实体附加到DataContext,因为MVC框架的模型绑定器只是创建该类的新实例,以将表单数据传递给您的操作。

通过将第二个参数设置为true,您可以告诉L2S该实体处于已修改状态,但仅当您有一个时间戳成员对您的实体进行版本检查时才有效。

最简单的方法是以未经修改的方式附加,然后调用Refresh。这样,L2S会检查修改,您可以保存更改的内容:

DataContext.Truck_Mng.Attach(truck_mng);
DataContext.Refresh(RefreshMode.KeepCurrentValues, truck_mng);
DataContext.SubmitChanges();