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í
| Name | Description |
|---|---|
| AssociateWith(LambdaExpression) |
Filtruje objekty načtené pro určitou relaci. |
| AssociateWith<T>(Expression<Func<T,Object>>) |
Filtruje objekty načtené pro určitou relaci. |
AssociateWith(LambdaExpression)
Filtruje objekty načtené 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 u konkrétního pole nebo vlastnosti 1:N. Mějte na paměti 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ý operátor než platný operátor, vyvolá se výjimka. Platné operátory jsou následující:
Where
OrderBy
PakBy
SeřaditSestupně
PotomVSeřazeníSestupném
Vezměte
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 nad těmi Orders , které nebyly dnes odeslány.
Platí pro
AssociateWith<T>(Expression<Func<T,Object>>)
Filtruje objekty načtené 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 u konkrétního pole nebo vlastnosti 1:N. Mějte na paměti 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ý operátor než platný operátor, vyvolá se výjimka. Platné operátory jsou následující:
Where
OrderBy
PakBy
SeřaditSestupně
PotomVSeřazeníSestupném
Vezměte
Příklady
V následujícím příkladu vnitřní smyčka iteruje pouze nad těmi Orders , které nebyly dnes odeslány.
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, naleznete v tématu DataLoadOptions.