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
| 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. |
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
Gibt die Abfrage an, 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, das eine 1:n-Beziehung darstellt, wird eine Ausnahme ausgelöst.
Wenn ein anderer Operator als ein gültiger Operator im Ausdruck angezeigt wird, wird eine Ausnahme ausgelöst. Gültige Operatoren sind wie folgt:
Where
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 Orders , die heute noch nicht ausgeliefert wurden.
Gilt für:
AssociateWith<T>(Expression<Func<T,Object>>)
Filtert Objekte, die für eine bestimmte Beziehung abgerufen werden.
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, der abgefragt wird.
Wenn der Typ nicht zugeordnet ist, wird eine Ausnahme ausgelöst.
Parameter
- expression
- Expression<Func<T,Object>>
Gibt die Abfrage an, 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, das eine 1:n-Beziehung darstellt, wird eine Ausnahme ausgelöst.
Wenn ein anderer Operator als ein gültiger Operator im Ausdruck angezeigt wird, wird eine Ausnahme ausgelöst. Gültige Operatoren sind wie folgt:
Where
OrderBy
ThenBy
OrderByDescending
ThenByDescending
Take
Beispiele
Im folgenden Beispiel durchläuft die innere Schleife nur diejenigen Orders , die 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.