DataLoadOptions.AssociateWith Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| AssociateWith(LambdaExpression) |
Hiermee filtert u de objecten die zijn opgehaald voor een bepaalde relatie. |
| AssociateWith<T>(Expression<Func<T,Object>>) |
Hiermee filtert u objecten die zijn opgehaald voor een bepaalde relatie. |
AssociateWith(LambdaExpression)
Hiermee filtert u de objecten die zijn opgehaald voor een bepaalde relatie.
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)
Parameters
- expression
- LambdaExpression
Hiermee wordt de query geïdentificeerd die moet worden gebruikt voor een bepaald een-op-veel-veld of -eigenschap. Houd rekening met het volgende:
Als de expressie niet begint met een veld of eigenschap die een een-op-veel-relatie vertegenwoordigt, wordt er een uitzondering gegenereerd.
Als een andere operator dan een geldige operator in de expressie wordt weergegeven, wordt er een uitzondering gegenereerd. Geldige operators zijn als volgt:
Where
OrderBy
ThenBy
SorterenOpAflopend
VervolgensOmlaagSorteerder
Nemen
Voorbeelden
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
Opmerkingen
In het volgende voorbeeld wordt de binnenste lus alleen herhaald ten opzichte van degenen Orders die niet vandaag zijn verzonden.
Van toepassing op
AssociateWith<T>(Expression<Func<T,Object>>)
Hiermee filtert u objecten die zijn opgehaald voor een bepaalde relatie.
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)))
Type parameters
- T
Het type waarop een query wordt uitgevoerd.
Als het type niet is toegewezen, wordt er een uitzondering gegenereerd.
Parameters
- expression
- Expression<Func<T,Object>>
Hiermee wordt de query geïdentificeerd die moet worden gebruikt voor een bepaald een-op-veel-veld of -eigenschap. Houd rekening met het volgende:
Als de expressie niet begint met een veld of eigenschap die een een-op-veel-relatie vertegenwoordigt, wordt er een uitzondering gegenereerd.
Als een andere operator dan een geldige operator in de expressie wordt weergegeven, wordt er een uitzondering gegenereerd. Geldige operators zijn als volgt:
Where
OrderBy
ThenBy
SorterenOpAflopend
VervolgensOmlaagSorteerder
Nemen
Voorbeelden
In het volgende voorbeeld wordt de binnenste lus alleen herhaald ten opzichte van degenen Orders die niet vandaag zijn verzonden.
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
Opmerkingen
Zie voor meer informatie over het voorkomen van cycli DataLoadOptions.