2010-07-01 3 views
1

i ont un tel codequestion sur l'entité

var menu = _dataManager.Menu.Details(id); 
     var menu2 = _dataManager.Menu.Details(id); 

     menu.Name = "AAA"; 

dans ce cas menu2.Name sera "AAA", je suppose que ce à cause de référence, mais comment puis-je résoudre?

Répondre

1

Entité paresseuse charge des données. Forcer le chargement et le déconnecter du modèle, puis il ne sera pas AAA.

charge Désireuse:

DataLoadOptions op = new DataLoadOptions(); 
op.LoadWith<Details>(x => x.Menu); 
//etc... 
_dataManager.LoadOptions = op; 

Mise à jour: Il semble que dans le passé, je débranche en copiant les données sur une non-entité POCO.

+0

un échantillon de code? – kusanagi

+0

ouais, en essayant de trouver le code pour la dernière fois que je l'ai fait. la lecture de toute propriété devrait forcer la charge. La déconnexion est plus spécifique. –

+0

Bonne réponse Russell. Cela m'a permis de chercher un moyen de forcer une énumération sur des objets IEnumerable. Je regarde maintenant mais je ne pense pas qu'il y ait une méthode Enumerate() ou quoi que ce soit. Serait bien dans ce contexte. –

1

La méthode Details est probablement configurée pour renvoyer une seule instance de l'élément de menu, quel que soit le nombre de fois que vous l'avez placé dans des noms de variables différents.

Une solution consisterait à utiliser un objet dataManager différent pour le second élément de menu.