2010-11-17 14 views
1

Je veux mettre à jour l'objet avec LINQ to Entities, comme ceci:Comment mettre à jour l'objet complet avec linq aux entités?

public ActionResult SubmitPool(SwimmingPool Pool) 
     { 

      SwimmingPool IsPool = (from sp in db.SwimmingPool 
            where sp.Id == Pool.Id 
            select sp).First(); 


      if (IsPool != null) { 

       IsPool = Pool; 
        db.SaveChanges(); 
       } 
} 

Mais cela ne ...

Si je ne:

public ActionResult SubmitPool(SwimmingPool Pool) 
     { 

      SwimmingPool IsPool = (from sp in db.SwimmingPool 
            where sp.Id == Pool.Id 
            select sp).First(); 


      if (IsPool != null) { 

       ----> IsPool.Name = Pool.Name; 
        db.SaveChanges(); 
       } 
} 

Il fait! Mais je veux mettre à jour l'objet complet. Comment faire?

Répondre

2

La ligne

IsPool = Pool; 

ne fait rien aux données à l'intérieur; cela change simplement la référence.
Après cette ligne, les deux IsPool et Pool pointent vers le même objet dans le tas; pas utile dans votre cas. Vous devez affecter spécifiquement chaque membre d'une classe à l'autre. L'utilisation d'AutoMapper le ralentirait gravement avec

1

utilisation AutoMapper pour la carte entre vos modèles de vue et les entités LINQ

+0

je pense qu'il devrait automapper dans des situations plus critiques pas simple comme ça, – Stacker