EntityReference<TEntity>.Load(MergeOption) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Charge l’objet associé pour cela EntityReference<TEntity> avec l’option de fusion spécifiée.
public:
override void Load(System::Data::Objects::MergeOption mergeOption);
public override void Load(System.Data.Objects.MergeOption mergeOption);
override this.Load : System.Data.Objects.MergeOption -> unit
Public Overrides Sub Load (mergeOption As MergeOption)
Paramètres
- mergeOption
- MergeOption
Spécifie comment l’objet doit être retourné s’il existe déjà dans le ObjectContext.
Exceptions
La source de l’objet EntityReference<TEntity> est null.
-ou-
Une requête a retourné plusieurs extrémités associées.
-ou-
Une requête a retourné zéro extrémité associée et une fin associée était attendue.
Remarques
Cette méthode est utilisée pour charger l’objet associé.
En cas de chargement, l’objet associé est accessible à partir de la Value propriété.
Pour charger explicitement des objets associés, vous devez appeler la Load méthode à la fin associée retournée par la propriété de navigation. Pour une relation un-à-plusieurs, appelez la Load méthode sur EntityCollection<TEntity>, et pour une relation un-à-un, appelez le LoadEntityReference<TEntity>. Cela charge les données d’objet associées dans le contexte de l’objet. Lorsqu’une requête retourne des résultats, vous pouvez énumérer la collection d’objets à l’aide d’une foreach boucle (For Each...Next en Visual Basic) et appeler conditionnellement la Load méthode sur EntityReference<TEntity> et EntityCollection<TEntity> les propriétés de chaque entité dans les résultats.
La Load méthode charge des objets connexes à partir de la source de données, qu’il s’agisse trueou nonIsLoaded.
Note
Lorsque vous appelez la Load méthode pendant une foreach énumération (C#) ou For Each (Visual Basic), Object Services tente d’ouvrir un nouveau lecteur de données. Cette opération échoue, sauf si vous avez activé plusieurs jeux de résultats actifs en spécifiant dans la chaîne de multipleactiveresultsets=true connexion. Vous pouvez également charger le résultat de la requête dans une List<T> collection. Cela ferme le lecteur de données et vous permet d’énumérer sur la collection pour charger des objets référencés.
Cette méthode appelle la méthode interne RelatedEnd.ValidateLoad avant de charger l’objet associé, ce qui valide qu’un appel Load a les conditions appropriées. La RelatedEnd.ValidateLoad méthode vérifie que :
- Il existe une valeur valide ObjectContext .
- L’entité n’est pas dans un Deleted état.
- MergeOption pour Load doit être NoTracking si et uniquement si l’entité source était NoTracking. Si l’entité source a été récupérée avec n’importe quel autre MergeOptionélément, elleMergeOptionLoadpeut être tout sauf NoTracking (par exemple, l’entité a pu être chargée OverwriteChanges et l’option Load peut êtreAppendOnly).
- Si
mergeOptionc’est NoTrackingle cas, Load n’est pas appelé sur une entité déjà chargée et Load n’est pas appelé sur une entité non vide, non suivie RelatedEnd.
Lorsque l’objet associé est déjà chargé dans le ObjectContext, la Load méthode applique le MergeOption paramètre spécifié mergeOption . Pour plus d’informations, consultez Identity Resolution, State Management et Change Tracking.