DataLoadOptions.AssociateWith 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.
Überlädt
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 wurden. |
AssociateWith(LambdaExpression)
Filtert die Objekte, die für eine bestimmte Beziehung abgerufen wurden.
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. Beachten Sie Folgendes:
Wenn der Ausdruck nicht mit einem Feld oder einer Eigenschaft beginnt, die eine 1:n-Beziehung darstellen, wird eine Ausnahme ausgelöst.
Wenn der Ausdruck ungültige Operatoren enthält, wird eine Ausnahme ausgelöst. Gültige Operatoren sind:
Hierbei gilt:
OrderBy
ThenBy
OrderByDescending
ThenByDescending
Take
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, die Orders
heute noch nicht ausgeliefert wurden.
Gilt für:
AssociateWith<T>(Expression<Func<T,Object>>)
Filtert Objekte, die für eine bestimmte Beziehung abgerufen wurden.
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.
Wenn der Typ nicht zugeordnet ist, wird eine Ausnahme ausgelöst.
Parameter
- expression
- Expression<Func<T,Object>>
Identifiziert die Abfrage, die für ein bestimmtes 1:n-Feld oder eine bestimmte Eigenschaft verwendet werden soll. Beachten Sie Folgendes:
Wenn der Ausdruck nicht mit einem Feld oder einer Eigenschaft beginnt, die eine 1:n-Beziehung darstellen, wird eine Ausnahme ausgelöst.
Wenn der Ausdruck ungültige Operatoren enthält, wird eine Ausnahme ausgelöst. Gültige Operatoren sind:
Hierbei gilt:
OrderBy
ThenBy
OrderByDescending
ThenByDescending
Take
Beispiele
Im folgenden Beispiel durchläuft die innere Schleife nur diejenigen, die Orders
heute noch nicht ausgeliefert wurden.
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
Informationen zum Vermeiden von Zyklen finden Sie unter DataLoadOptions.