DataLoadOptions.AssociateWith Methode

Definition

Überlädt

AssociateWith(LambdaExpression)

Filtert die Objekte, die für eine bestimmte Beziehung abgerufen wurden.Filters the objects retrieved for a particular relationship.

AssociateWith<T>(Expression<Func<T,Object>>)

Filtert Objekte, die für eine bestimmte Beziehung abgerufen wurden.Filters objects retrieved for a particular relationship.

AssociateWith(LambdaExpression)

Filtert die Objekte, die für eine bestimmte Beziehung abgerufen wurden.Filters the objects retrieved for a particular relationship.

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

Parameter

expression
LambdaExpression

Identifiziert die Abfrage, die für ein bestimmtes 1:n-Feld oder eine bestimmte Eigenschaft verwendet werden soll.Identifies the query to be used on a particular one-to-many field or property. Beachten Sie Folgendes:Note the following:

Wenn der Ausdruck nicht mit einem Feld oder einer Eigenschaft beginnt, die eine 1:n-Beziehung darstellen, wird eine Ausnahme ausgelöst.If the expression does not start with a field or property that represents a one-to-many relationship, an exception is thrown.

Wenn der Ausdruck ungültige Operatoren enthält, wird eine Ausnahme ausgelöst.If an operator other than a valid operator appears in the expression, an exception is thrown. Gültige Operatoren sind:Valid operators are as follows:

WhereWhere

OrderByOrderBy

ThenByThenBy

OrderByDescendingOrderByDescending

ThenByDescendingThenByDescending

TakeTake

Beispiele

Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.AssociateWith<Customer>(c => c.Orders.Where(p => p.ShippedDate != DateTime.Today));
db.LoadOptions = dlo;
var custOrderQuery = 
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (Customer custObj in custOrderQuery)
{
    Console.WriteLine(custObj.CustomerID);
    foreach (Order ord in custObj.Orders)
    {
        Console.WriteLine("\t {0}",ord.OrderDate);
    } 
}
Dim db As New Northwnd("c:\northwnd.mdf")

Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.AssociateWith(Of Customer)(Function(c As Customer) _
        c.Orders.Where(Function(p) p.ShippedDate <> DateTime.Today))
db.LoadOptions = dlo

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

For Each custObj In custOrderQuery
    Console.WriteLine(custObj.CustomerID)
    For Each ord In custObj.Orders
        Console.WriteLine("{0}{1}", vbTab, ord.OrderDate)
    Next

Next

Hinweise

Im folgenden Beispiel durchläuft die innere Schleife nur diejenigen Orders , die noch nicht ausgeliefert wurden.In the following example, the inner loop iterates only over those Orders that have not been shipped today.

AssociateWith<T>(Expression<Func<T,Object>>)

Filtert Objekte, die für eine bestimmte Beziehung abgerufen wurden.Filters objects retrieved for a particular relationship.

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

Typparameter

T

Der Typ, für den die Abfrage durchgeführt wird.The type that is queried against.

Wenn der Typ nicht zugeordnet ist, wird eine Ausnahme ausgelöst.If the type is unmapped, an exception is thrown.

Parameter

expression
Expression<Func<T,Object>>

Identifiziert die Abfrage, die für ein bestimmtes 1:n-Feld oder eine bestimmte Eigenschaft verwendet werden soll.Identifies the query to be used on a particular one-to-many field or property. Beachten Sie Folgendes:Note the following:

Wenn der Ausdruck nicht mit einem Feld oder einer Eigenschaft beginnt, die eine 1:n-Beziehung darstellen, wird eine Ausnahme ausgelöst.If the expression does not start with a field or property that represents a one-to-many relationship, an exception is thrown.

Wenn der Ausdruck ungültige Operatoren enthält, wird eine Ausnahme ausgelöst.If an operator other than a valid operator appears in the expression, an exception is thrown. Gültige Operatoren sind:Valid operators are as follows:

WhereWhere

OrderByOrderBy

ThenByThenBy

OrderByDescendingOrderByDescending

ThenByDescendingThenByDescending

TakeTake

Beispiele

Im folgenden Beispiel durchläuft die innere Schleife nur diejenigen Orders , die noch nicht ausgeliefert wurden.In the following example, the inner loop iterates only over those Orders that have not been shipped today.

Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.AssociateWith<Customer>(c => c.Orders.Where(p => p.ShippedDate != DateTime.Today));
db.LoadOptions = dlo;
var custOrderQuery = 
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (Customer custObj in custOrderQuery)
{
    Console.WriteLine(custObj.CustomerID);
    foreach (Order ord in custObj.Orders)
    {
        Console.WriteLine("\t {0}",ord.OrderDate);
    } 
}
Dim db As New Northwnd("c:\northwnd.mdf")

Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.AssociateWith(Of Customer)(Function(c As Customer) _
        c.Orders.Where(Function(p) p.ShippedDate <> DateTime.Today))
db.LoadOptions = dlo

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

For Each custObj In custOrderQuery
    Console.WriteLine(custObj.CustomerID)
    For Each ord In custObj.Orders
        Console.WriteLine("{0}{1}", vbTab, ord.OrderDate)
    Next

Next

Hinweise

Weitere Informationen zum Vermeiden von Zyklen finden DataLoadOptionsSie unter.For information about how to avoid cycles, see DataLoadOptions.

Gilt für: