2009-05-29 91 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