Edit: La réponse suivante se réfère à la Base de données de la Première ou de Modèle-Première de flux de travail (les deux seules les flux de travail qui étaient disponibles avec Entity Framework (version <= 4.0) lorsque la question a été posée). Si vous êtes à l'aide de Code-Première de flux de travail (qui est disponible depuis EF version >= 4.1) de procéder à la ssmith la réponse à cette question pour une solution correcte.
Le fichier edmx a dans l' <ConceptualModel>
et <EntityContainer>
définition d'un attribut pour le chargement paresseux où vous pouvez définir le chargement paresseux généralement à false:
<EntityContainer Name="MyEntitiesContext" annotation:LazyLoadingEnabled="false">
Cela crée le paramètre suivant dans le ObjectContext constructeur:
public MyEntitiesContext() : base("name=MyEntitiesContext", "MyEntitiesContext")
{
this.ContextOptions.LazyLoadingEnabled = false;
OnContextCreated();
}
Modifier (en particulier en référence aux ctorx' commentaire ci-dessous):
Mon exemple n'est pas fait de cette façon que le ObjectContext
(ou DbContext
dans de nouveaux EF versions) doit être modifiée manuellement (ce qui serait écrasé à chaque mise à jour du modèle de la base de données, comme ctorx souligné), mais que l' EntityContainer
élément dans l' edmx:ConceptualModels
de la section du fichier EDMX doit être modifié par adjonction de l' annotation:LazyLoadingEnabled="false"
attribut - soit manuellement dans un éditeur XML ou sur la page de propriétés de la surface de concepteur où cette option est disponible. Cette modification du fichier EDMX va générer automatiquement le contexte de la classe avec les handicapés chargement différé option dans le constructeur comme indiqué ci-dessus. Le fichier EDMX modification elle-même ne pas être écrasé quand le modèle est mis à jour de la base de données.