2011-10-28 3 views
3

Dans Entity Framework, lorsque j'ai mappé mes tables aux entités correspondantes via le concepteur et que je les utilise effectivement, je trouve qu'une entité - Thing, qui a une relation (plusieurs à un ou un à un) avec un autre objet, par exemple, Bob, par exemple, produirait les trois propriétés suivantes sur Thing:Can Entity Framework Mise à jour automatique des propriétés de navigation Par ID

Bob 
BobId 
BobReference 

et si je mets BobId et sauver mon entité , la prochaine fois que je vais chercher cette Thing, je serai en mesure de naviguer dans la propriété Bob sans problème. Je suis curieux, cependant, s'il est possible de configurer EF pour me permettre de naviguer dans la propriété sans avoir à sauvegarder immédiatement.

+0

Avez-vous désactivé le chargement paresseux! Si le chargement paresseux est activé, vous ne devriez pas avoir à charger explicitement la propriété de navigation. – tdykstra

+0

Ceci n'est pas dû au chargement paresseux activé ou non. Il est en effet activé de toute façon; La question était de savoir si, après avoir défini l'ID d'une relation sur la propriété d'un modèle, il y avait un moyen de faire en sorte que la propriété se charge automatiquement lors de la navigation. – doctorless

+0

Si je comprends bien le scénario, je crois que le chargement paresseux le ferait. D'après ce que j'ai vu de son comportement, si vous tentez d'accéder à une propriété de navigation, et que la propriété est null, elle tente toujours de charger la propriété, et dans ce cas, elle utilisera la valeur FK que vous venez de mettre à jour. n'ont pas encore sauvé l'entité. – tdykstra

Répondre

1

Vous pouvez faire quelque chose comme ceci: (EF 4,1)

//Has to exists a record on Bob table with Id = 1 
var thing = new Thing() { BobId = 1 }; 

var context = new YouContext(); 
context.Entry(thing).State = EntityState.Unchanged; 
context.Entry(thing).Reference(x => x.Bob).Load(); 

puis thing.Bob est = null

+0

C'est ce que je pensais allait être la seule option. J'espérais plus qu'il y avait un moyen de configurer le contexte pour vérifier les références d'entités nulles avec un Id étant présent, et de charger la référence. Hélas, il ne semble pas. Je vous marque comme la réponse puisque c'est le plus proche. – doctorless

Questions connexes