MVC C#更新记录

时间:2011-12-20 22:30:05

标签: c# asp.net-mvc entity-framework

我在下面看到以下代码作为模板。 使用此记录进行更新的不同方法有哪些,因为我在下面这样做的方式不起作用。我正在使用实体框架。 C#用作语言。

public ActionResult Edit(Truck_Mng truck_mng)
{
      if (ModelState.IsValid)
      {

        // what are the different ways you can update the truck_mng record
        // I tried what you see below but did not update the record

         DataContext.Truck_Mng.Attach(truck_mng);
         DataContext.SubmitChanges();

         return RedirectToAction("Index");
      }
 return RedirectToAction("index");
} 

我正在使用Entity Framework。

1 个答案:

答案 0 :(得分:0)

如果Truck_Mng是从数据库中的表生成的类,则可以执行以下操作:

    [HttpPost]
    public ActionResult Edit(Truck_Mng truck_mng)
    {

        if (!ModelState.IsValid)
        {
            //Possible show an error message
        }

        using (var context = new MyDataContext())
        {
            context.Truck_Mng.AddObject(truck_mng);
            context.SaveChanges();
        }

        return RedirectToAction("index");
    }

如果Truck_Mng恰好是您制作的模型,那么您必须手动将其映射到正确的表格,如下所示:

    [HttpPost]
    public ActionResult Edit(Truck_Mng truck_mng)
    {

        if (!ModelState.IsValid)
        {
            //Possible show an error message
        }

        using (var context = new MyDataContext())
        {
            context.SomeTable.AddObject(new SomeTable
                                            {
                                                TruckName = truck_mng.Name,
                                                TruckDest = truck_mng.Dest
                                            });
            context.SaveChanges();
        }

        return RedirectToAction("index");
    }

我希望这是有道理的。