2010-01-06 4 views
1

J'ai un projet dans lequel j'utilise EFv4 pour sauvegarder les données dans mon référentiel. Cela fonctionne comme prévu pour les propriétés simples sur mon objet mais ne fait rien pour les objets liés. Par exemple, j'ai un objet Utilisateur et un Rôle de propriété associé qui est une collection d'entités Rôle. Si je mets à jour la date lastActivity de l'utilisateur et les rôles assignés à l'utilisateur dans mon interface utilisateur, puis renvoyez l'objet User au référentiel à mettre à jour, je peux voir les nouvelles valeurs dans l'objet User pour lastActivity et les rôles , mais quand je l'appelle:EntityFramework v4 ApplyCurrentValues ​​n'enregistrant pas les modifications de propriétés référencées

this.ObjectContext.ApplyCurrentValues(entitySet.Name.ToString(), entity); 
this.ObjectContext.SaveChanges(); 

que les simples propriétés sont enregistrées comme la date de lastActivity, les changements de rôle sont ignorés.

Ai-je besoin de faire quelque chose de spécial mettre à jour tous les objets référencés?

MISE À JOUR: je recherche sur le Web un peu plus et vu que quelqu'un a mentionné que applyCurrentValues ​​affecte uniquement les propriétés scalaires. Cela ne change toujours pas ma question initiale, mais cela pourrait expliquer pourquoi les entités concernées ne sont pas mises à jour. La documentation de Microsoft ne fait pas mention de ce que je peux voir.

Répondre

2

Je l'ai entré avec MSFT et il semble fonctionner comme prévu. Voici la citation de MSFT:

applyCurrentValues ​​ne fonctionne qu'avec les propriétés scalaires sur une seule entité . Ce que vous essayez d'accomplir serait plus facile avec entités auto-suivi. Espérons que le commutateur à l'utilisation de ces entités ne serait pas trop douloureux parce que vous pouvez juste swpa quel modèle de génération de code que vous utilisez (de la par défaut à l'entité autovirant un). Vous ne devrez pas changer votre modèle du tout, et espérons que les modifications à votre dépôt seraient petites.

J'ai enregistré un problème de documentation à pour clarifier ce que fait ApplyCurrentValues. Merci d'avoir signalé cet article!

Voici le referenced question:

Questions connexes