DataLoadOptions.AssociateWith Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
AssociateWith(LambdaExpression) |
Filtruje načtené objekty pro určitou relaci. |
AssociateWith<T>(Expression<Func<T,Object>>) |
Filtruje načtené objekty pro určitou relaci. |
AssociateWith(LambdaExpression)
Filtruje načtené objekty pro určitou relaci.
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)
Parametry
- expression
- LambdaExpression
Identifikuje dotaz, který se má použít pro konkrétní pole nebo vlastnost 1:N. Pamatujte na následující:
Pokud výraz nezačíná polem nebo vlastností, která představuje relaci 1:N, vyvolá se výjimka.
Pokud se ve výrazu zobrazí jiný než platný operátor, vyvolá se výjimka. Platné operátory jsou následující:
Kde
Orderby
Thenby
Orderbydescending
Thenbydescending
Take
Příklady
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
Poznámky
V následujícím příkladu vnitřní smyčka iteruje pouze přes ty Orders
, které nebyly dodány dnes.
Platí pro
AssociateWith<T>(Expression<Func<T,Object>>)
Filtruje načtené objekty pro určitou relaci.
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)))
Parametry typu
- T
Typ, na který se dotazuje.
Pokud typ není namapovaný, vyvolá se výjimka.
Parametry
- expression
- Expression<Func<T,Object>>
Identifikuje dotaz, který se má použít pro konkrétní pole nebo vlastnost 1:N. Pamatujte na následující:
Pokud výraz nezačíná polem nebo vlastností, která představuje relaci 1:N, vyvolá se výjimka.
Pokud se ve výrazu zobrazí jiný než platný operátor, vyvolá se výjimka. Platné operátory jsou následující:
Kde
Orderby
Thenby
Orderbydescending
Thenbydescending
Take
Příklady
V následujícím příkladu vnitřní smyčka iteruje pouze přes ty Orders
, které nebyly dodány dnes.
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
Poznámky
Informace o tom, jak se vyhnout cyklům, najdete v tématu DataLoadOptions.