DataLoadOptions Klasse
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.
Stellt das sofortige Laden und Filtern verwandter Daten bereit.
public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
- Vererbung
-
DataLoadOptions
Beispiele
Wenn Sie aus der Northwind-Beispieldatenbank abrufen Customers , können DataLoadOptions Sie angeben, dass Orders auch abgerufen werden soll. Sie können sogar angeben, welche Teilmenge abgerufen Orders werden soll.
Hinweise
Die DataLoadOptions Klasse bietet sofortiges Laden und Filtern verwandter Daten.
Wenn Sie ein Objekt abfragen, rufen Sie tatsächlich nur das angeforderte Objekt ab. Die zugehörigen Objekte werden nicht automatisch gleichzeitig abgerufen. Weitere Informationen finden Sie unter Beziehungsübergreifendes Abfragen.
Die DataLoadOptions Klasse stellt zwei Methoden bereit, um das sofortige Laden angegebener verwandter Daten zu erzielen. Die LoadWith Methode ermöglicht das sofortige Laden von Daten im Zusammenhang mit dem Hauptziel. Die AssociateWith Methode ermöglicht das Filtern verwandter Objekte.
Regeln
Berücksichtigen Sie die folgenden Regeln in Bezug auf DataLoadOptions die Nutzung:
- Durch das Zuweisen eines Elements DataLoadOptions zu einer DataContext Nach ausführung der ersten Abfrage wird eine Ausnahme generiert.
- Wenn sie einer DataLoadOptions Ausnahme zugewiesen wurde, wird eine DataContext Ausnahme geändert.
Behandeln von Zyklen
LoadWith und AssociateWith Direktiven dürfen keine Zyklen erstellen. Im Folgenden sind Beispiele für solche Diagramme dargestellt:
Beispiel 1: Selbst rekursiv
dlo.LoadWith<Employee>(e => e.Reports);
Beispiel 2: Zurückzeiger
dlo.LoadWith <Customer>(c => C.Orders);dlo.LoadWith <Order>(o => o.Customer);
Beispiel 3: Längere Zyklen
Obwohl dies nicht in einem gut normalisierten Modell erfolgen sollte, ist es möglich.
dlo.LoadWith <A>(a => a.Bs);dlo.LoadWith <B>(b => b.Cs);dlo.LoadWith <C>(c => c.As);
Beispiel 4: Selbst rekursive Unterabfragen
dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
Beispiel 5: Längere rekursive Unterabfragen
dlo.AssociateWith<A>(a=>a.Bs.Where(b=>b.Id==3));dlo.AssociateWith<B>(b=>b.As.Where(a=>a.Id==3));
Die folgenden allgemeinen Regeln helfen Ihnen zu verstehen, was in diesen Szenarien auftritt:
LoadWith: Jeder Aufruf überprüft, LoadWith ob Zyklen in das Diagramm eingeführt wurden. Wenn wie in den Beispielen 1, 2 und 3 eine Ausnahme ausgelöst wird.
AssociateWith: Zur Laufzeit wendet das Modul die vorhandenen SubQuery-Klauseln nicht auf die Beziehung innerhalb des Ausdrucks an.
- In Beispiel 4 wird die
WhereKlausel für alleAausgeführt , nicht nur die, die vom SubQuery-Ausdruck selbst gefiltert werden (da dies rekursiv wäre). - In Beispiel 5 wird die erste
WhereKlausel auf alle sBangewendet, obwohl Unterabfragen vorhandenBsind. Die zweiteWhereKlausel wird auf alle sAangewendet, obwohl Unterabfragen vorhandenAsind.
- In Beispiel 4 wird die
Konstruktoren
| Name | Beschreibung |
|---|---|
| DataLoadOptions() |
Initialisiert eine neue Instanz der DataLoadOptions-Klasse. |
Methoden
| Name | Beschreibung |
|---|---|
| AssociateWith(LambdaExpression) |
Filtert die objekte, die für eine bestimmte Beziehung abgerufen wurden. |
| AssociateWith<T>(Expression<Func<T,Object>>) |
Filtert Objekte, die für eine bestimmte Beziehung abgerufen werden. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| LoadWith(LambdaExpression) |
Ruft angegebene Daten im Zusammenhang mit dem Hauptziel mithilfe eines Lambda-Ausdrucks ab. |
| LoadWith<T>(Expression<Func<T,Object>>) |
Gibt an, welche Unterobjekte abgerufen werden sollen, wenn eine Abfrage für ein Objekt vom Typ T gesendet wird. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |