2009-05-29 44 views
0

我在ASP.NET MVC中使用了編輯視圖,編輯後它將編輯的實體返回。 將編輯後的值返回到數據庫的最佳方式是什麼?替換LINQ中的實體

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit(int id, Movies EditedMovie) 
    { 
     var orginalMovie = _db_linq.Movies.First(e => e.Id == id); 
     if (!ModelState.IsValid) 
      return View(orginalMovie); 

     _db_linq.Movies.Attach(EditedMovie, true); 
     _db_linq.SubmitChanges(); 

     return RedirectToAction("Index"); 
    } 

返回錯誤「無法使用已經使用的密鑰添加實體」。

orginalMovie = EditedMovie;不行,太 我有太多的每個屬性複製單獨的,即

orginalMovie.Name = EditedMovie.Name; 

回答

2

對於實體框架

變化:

_db_linq.Movies.Attach(EditedMovie, true); 

到:

_db_linq.Movies.ApplyPropertyChanges(EditedMovie); 
+0

謝謝。但是這種方法不存在。 – 2009-05-29 08:42:26