2009-05-29 4 views
0

J'utilise une vue d'édition dans ASP.NET MVC et, après une modification, elle renvoie l'entité éditée. Quel est le meilleur moyen de ramener les valeurs éditées à la base de données.Remplacement d'une entité dans 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"); 
    } 

Retourne l'erreur "Impossible d'ajouter une entité avec une clé déjà utilisée."

orginalMovie = EditedMovie; ne fonctionne pas, trop je trop copier chaque propriété individuelle, à savoir

orginalMovie.Name = EditedMovie.Name; 

Répondre

2

Pour Entity Framework:

Change:

_db_linq.Movies.Attach(EditedMovie, true); 

à:

_db_linq.Movies.ApplyPropertyChanges(EditedMovie); 
+0

merci. mais cette méthode n'existe pas. –

+0

Utilisez-vous Linq to SQL ou Entity Framework? Cette approche est pour Entity Framework. – aleemb

+0

Linq to SQL Classe –

Questions connexes