2011-12-20 64 views
-3

我有類似下面的代碼,您在下面看到作爲模板。 做這種記錄更新的不同方式是什麼,因爲我在下面的做法是行不通的。我正在使用實體框架。 C#被用作語言。MVC 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"); 
} 

我正在使用實體框架。

+1

你在使用Entity Framework,Linq2Sql,DataSets嗎?您需要提供更多信息。 – 2011-12-20 22:31:31

回答

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"); 
    } 

我希望這是有道理的。

+0

你知道如何使它與SubmitChanges()一起工作,SaveChanges不起作用 – 2011-12-20 23:00:25

+0

'SubmitChanges()'屬於LINQ to SQL,'SaveChanges()'是實體框架。如果您使用EF並且SaveChanges不起作用,則可能會有另一個問題。 – 2011-12-20 23:20:10