EntityReference<TEntity>.Load(MergeOption) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Lädt das zugehörige Objekt für diese EntityReference<TEntity> mit der angegebenen Zusammenführungsoption.
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)
Parameter
- mergeOption
- MergeOption
Gibt an, wie das Objekt zurückgegeben werden soll, wenn es bereits im ObjectContextvorhanden ist.
Ausnahmen
Die Quelle der EntityReference<TEntity> ist null
.
-oder-
Eine Abfrage hat mehr als ein verwandtes Ende zurückgegeben.
-oder-
Eine Abfrage hat null verwandte Enden zurückgegeben, und ein verwandtes Ende wurde erwartet.
Hinweise
Diese Methode wird verwendet, um das zugehörige Objekt zu laden.
Beim Laden wird auf das zugehörige Objekt über die eigenschaft Value zugegriffen.
Um verwandte Objekte explizit zu laden, müssen Sie die Load
-Methode für das zugehörige Ende aufrufen, das von der Navigationseigenschaft zurückgegeben wird. Rufen Sie für eine 1:n-Beziehung die Load-Methode für EntityCollection<TEntity>auf, und rufen Sie für eine 1:1-Beziehung die Load für EntityReference<TEntity>auf. Dadurch werden die zugehörigen Objektdaten in den Objektkontext geladen. Wenn eine Abfrage Ergebnisse zurückgibt, können Sie die Auflistung von Objekten mithilfe einer foreach
Schleife (For Each...Next
in Visual Basic) aufzählen und die Load
-Methode für EntityReference<TEntity> und EntityCollection<TEntity> Eigenschaften für jede Entität in den Ergebnissen bedingt aufrufen.
Die Load Methode lädt verwandte Objekte aus der Datenquelle, unabhängig davon, ob IsLoadedtrue
ist.
Anmerkung
Wenn Sie die Load-Methode während einer foreach
(C#) oder For Each
(Visual Basic)-Aufzählung aufrufen, versucht Object Services, einen neuen Datenleser zu öffnen. Dieser Vorgang schlägt fehl, es sei denn, Sie haben mehrere aktive Resultsets aktiviert, indem Sie multipleactiveresultsets=true
in der Verbindungszeichenfolge angeben. Sie können das Ergebnis der Abfrage auch in eine List<T>-Auflistung laden. Dadurch wird der Datenleser geschlossen, und Sie können die Auflistung aufzählen, um referenzierte Objekte zu laden.
Diese Methode ruft die interne RelatedEnd.ValidateLoad
-Methode auf, bevor das zugehörige Objekt geladen wird. Dadurch wird überprüft, ob ein Aufruf von Load über die richtigen Bedingungen verfügt. Die RelatedEnd.ValidateLoad
-Methode überprüft Folgendes:
- Es ist ein gültiger ObjectContext vorhanden.
- Die Entität befindet sich nicht in einem Deleted Zustand.
- MergeOption für Load muss nur dann NoTracking werden, wenn die Quellentität NoTrackingwurde. Wenn die Quellentität mit einem anderen MergeOptionabgerufen wurde, kann die LoadMergeOption alles andere als NoTracking sein (z. B. könnte die Entität mit OverwriteChanges geladen worden sein, und die Option Load kann AppendOnlysein).
- Wenn
mergeOption
NoTrackingist, wird Load nicht für eine bereits geladene Entität aufgerufen, und Load wird nicht für ein nicht leeres, nicht nachverfolgtes RelatedEndaufgerufen.
Wenn das zugehörige Objekt bereits in den ObjectContextgeladen wird, erzwingt die Load Methode die durch den parameter mergeOption
angegebene MergeOption. Weitere Informationen finden Sie unter Identitätsauflösung, Zustandsverwaltung und Änderungsnachverfolgung.