2010-05-25 3 views
1

Je peux définir une EntityReference sur une entité sans avoir à charger l'entité relevent comme suit:EF2: Existe-t-il un moyen d'ajouter une entité à EntityCollection sans avoir à charger l'entité associée?

this.CategoryReference.EntityKey = new EntityKey("MyEntities.CategorySet", "Id", 12); 

Je peux donc définir la catégorie de l'entité que je traite à ce que la catégorie a id 12 sans avoir à frapper la base de données.

Mais existe-t-il un moyen de faire ceci ou quelque chose de similaire sur un EntityCollection? Donc, si j'ai maintenant plusieurs catégories au lieu d'un seul, je veux faire maintenant quelque chose comme ce qui suit, bien que cela ne fonctionne pas:

// stand-in category 
var categoryStandIn = new Category { EntityKey = new EntityKey("MyEntities.CategorySet", "Id", 12) } 
this.Categories.Add(categoryStandIn); 
+0

double possible de [EntityCollections la fixation d'un EntityReference.EntityKey pour remplir la collection] (http://stackoverflow.com/questions/2410741/entitycollections-setting-an-entityreference-entitykey-to-populate- la-collection) –

+0

Oui, c'est en effet un doublon. Apparemment, je ne savais pas trop comment poser la question, donc ma recherche précédente n'a pas trouvé celui-là. :) –

Répondre

1
+0

Merci John! Je l'avais essayé précédemment, mais les commentaires dans le blog que vous avez lié contenaient les indices dont j'avais besoin pour résoudre le problème - il s'avère que l'entité que j'essayais d'ajouter avait déjà été chargée, je devais appeler ObjectStateManager.TryGetObjectStateEntry avant de faire le AttachTo pour vérifier si elle était déjà chargée - si elle est déjà chargée, utilisez l'entité chargée, sinon utilisez le stub. –

Questions connexes