Freigeben über


DataLoadOptions.LoadWith Methode

Definition

Überlädt

LoadWith(LambdaExpression)

Ruft die angegebenen Daten mit Bezug auf das Hauptziel mit einem Lambda-Ausdruck 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.

LoadWith(LambdaExpression)

Ruft die angegebenen Daten mit Bezug auf das Hauptziel mit einem Lambda-Ausdruck ab.

public:
 void LoadWith(System::Linq::Expressions::LambdaExpression ^ expression);
public void LoadWith (System.Linq.Expressions.LambdaExpression expression);
member this.LoadWith : System.Linq.Expressions.LambdaExpression -> unit
Public Sub LoadWith (expression As LambdaExpression)

Parameter

expression
LambdaExpression

Ein Lambdaausdruck, der das verwandte Material identifiziert.

Beispiele

Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Customer>(c => c.Orders);
db.LoadOptions = dlo;

var londonCustomers =
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (var custObj in londonCustomers)
{
    Console.WriteLine(custObj.CustomerID);
}
Dim db As New Northwnd("c:\northwnd.mdf")

Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.LoadWith(Of Customer)(Function(c As Customer) c.Orders)
db.LoadOptions = dlo

Dim londonCustomers = _
    From cust In db.Customers _
    Where cust.City = "London" _
    Select cust

For Each custObj In londonCustomers
    Console.WriteLine(custObj.CustomerID)
Next

Hinweise

Im folgenden Beispiel werden alle Orders (Bestellungen) für alle Customers (Kunden) in London abgerufen, wenn die Abfrage ausgeführt wird. Aufgrund dessen wird bei nachfolgenden Zugriffen auf die Orders-Eigenschaft für ein Customer-Objekt keine neue Datenbankabfrage ausgelöst.

Gilt für:

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.

public:
generic <typename T>
 void LoadWith(System::Linq::Expressions::Expression<Func<T, System::Object ^> ^> ^ expression);
public void LoadWith<T> (System.Linq.Expressions.Expression<Func<T,object>> expression);
member this.LoadWith : System.Linq.Expressions.Expression<Func<'T, obj>> -> unit
Public Sub LoadWith(Of T) (expression As Expression(Of Func(Of T, Object)))

Typparameter

T

Der Typ, für den die Abfrage durchgeführt wird.

Wenn der Typ nicht zugeordnet ist, wird eine Ausnahme ausgelöst.

Parameter

expression
Expression<Func<T,Object>>

Identifiziert das Feld oder die Eigenschaft, die abgerufen werden sollen.

Wenn der Ausdruck kein Feld oder keine Eigenschaft identifiziert, die eine 1:1 oder eine 1:n-Beziehung darstellen, wird eine Ausnahme ausgelöst.

Beispiele

Im folgenden Beispiel werden alle Orders (Bestellungen) für alle Customers (Kunden) in London abgerufen, wenn die Abfrage ausgeführt wird. Aufgrund dessen wird bei nachfolgenden Zugriffen auf die Orders-Eigenschaft für ein Customer-Objekt keine neue Datenbankabfrage ausgelöst.

Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Customer>(c => c.Orders);
db.LoadOptions = dlo;

var londonCustomers =
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (var custObj in londonCustomers)
{
    Console.WriteLine(custObj.CustomerID);
}
Dim db As New Northwnd("c:\northwnd.mdf")

Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.LoadWith(Of Customer)(Function(c As Customer) c.Orders)
db.LoadOptions = dlo

Dim londonCustomers = _
    From cust In db.Customers _
    Where cust.City = "London" _
    Select cust

For Each custObj In londonCustomers
    Console.WriteLine(custObj.CustomerID)
Next

Hinweise

Sie können das Laden von zwei Beziehungsebenen (z. B Orders.OrderDetails. ) nicht angeben. In diesen Szenarien müssen Sie zwei separate LoadWith Methoden angeben.

Informationen zum Vermeiden des Radfahrens finden Sie im Abschnitt "Hinweise" in DataLoadOptions.

Gilt für: