2010-11-11 4 views
0

J'utilise l'entité cadre 4.
AttachTo ne semble pas fonctionner. Object est toujours null

var entity = rep.GetEntityTxt<AreaTypeText>(PKey, LangID); 

_db.AttachTo("AreaTypeText",entity); 
entity.Txt = "TEST"; 
_db.SaveChanges(); 

Quand je vérifie en mode débogage sur la variable _db, mon objet AreaTypeText est nulle. Rien ne semble être attaché.


MISE À JOUR DE TRAVAIL EXEMPLE
je dois détacher pour être en mesure de changer le EntityState Modified avant SaveChange.

var pluralizer = PluralizationService.CreateService(CultureInfo.GetCultureInfo("en")); 
      TEntity entity = _db.CreateObjectSet<TEntity>().FirstOrDefault(p => p.ID == id && p.LangID == langid); 

      if (entity != null) 
      { 
       _db.Detach(entity); 
       entity.Txt = value; 
       _db.AddObject(pluralizer.Pluralize(entity.GetType().Name), entity); 
       _db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified); 
       _db.SaveChanges(); 
+0

ne peut pas vous faire '_db.AreaTypeText.Attach (entité)'? ou '_db.AttachTo (" AreaTypeTexts ", entité)' (notez la pluralisation sur le nom de l'ensemble d'entités). plus votre code n'a pas de sens. pourquoi récupérez-vous une entité puis tentez de l'attacher? c'est déjà le cas. – RPM1984

+0

Vous devez montrer le code qui * ne fonctionne pas, pas seulement la partie qui le fait. –

+1

Ok, j'ai trouvé le problème. J'ai besoin de détacher l'entité du contexte pour pouvoir définir l'état sur Modifié. –

Répondre

1
var pluralizer = PluralizationService.CreateService(CultureInfo.GetCultureInfo("en")); 
      TEntity entity = _db.CreateObjectSet<TEntity>().FirstOrDefault(p => p.ID == id && p.LangID == langid); 

      if (entity != null) 
      { 
       _db.Detach(entity); 
       entity.Txt = value; 
       _db.AddObject(pluralizer.Pluralize(entity.GetType().Name), entity); 
       _db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified); 
       _db.SaveChanges(); 
Questions connexes