2009-10-22 6 views

Répondre

2

C'est l'une de ces questions où, « Si vous devez demander, vous ne devrait probablement pas le faire. " Entity Framework impliquera implicitement des entités dans les cas où il est évident que cela doit se produire. Vous n'avez vraiment besoin que d'attacher et de détacher explicitement des entités dans les cas où vous utilisez plusieurs ObjectContext à la fois. Parce que cela peut être assez confus, en raison de la pièce jointe implicite qui se produit au cours des opérations Entity Framework normales, je recommande fortement que les personnes nouvelles à Entity Framework utilisent un seul ObjectContext à la fois. Si vous faites cela, vous ne devriez jamais avoir besoin d'appeler explicitement Attacher ou Détacher.

L'appel, par exemple, Attacher n'affecte pas vraiment les données renvoyées, dans la mesure où ses propriétés de détartreur sont concernées. Mais s'il se réfère à d'autres entités qui sont déjà chargées dans le contexte auquel il est attaché, ces propriétés seront pré-remplies sans chargement explicite. Cela dit, les entités renvoyées à partir d'une requête sont déjà attachées, vous ne pouvez donc pas les joindre.

+0

Voulez-vous dire qu'il est préférable d'instancier le contexte uniquement à un endroit, par exemple comme champ dans une méthode d'usine? –