DataLoadOptions.AssociateWith Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
AssociateWith(LambdaExpression) |
Filtre les objets récupérés pour une relation particulière. |
AssociateWith<T>(Expression<Func<T,Object>>) |
Filtre des objets récupérés pour une relation particulière. |
AssociateWith(LambdaExpression)
Filtre les objets récupérés pour une relation particulière.
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)
Paramètres
- expression
- LambdaExpression
Identifie la requête à utiliser sur une propriété ou un champ particulier un-à-plusieurs. Notez les points suivants :
Si l'expression ne commence pas par un champ ou une propriété qui représente une relation un-à-plusieurs, une exception est levée.
Si un opérateur autre qu'un opérateur valide apparaît dans l'expression, une exception est levée. Les opérateurs valides sont les suivants :
Où
OrderBy
ThenBy
OrderByDescending
ThenByDescending
Take
Exemples
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
Remarques
Dans l’exemple suivant, la boucle interne itère uniquement sur ceux Orders
qui n’ont pas été expédiés aujourd’hui.
S’applique à
AssociateWith<T>(Expression<Func<T,Object>>)
Filtre des objets récupérés pour une relation particulière.
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)))
Paramètres de type
- T
Type sur lequel est envoyée la requête.
Si le type est non mappé, une exception est levée.
Paramètres
- expression
- Expression<Func<T,Object>>
Identifie la requête à utiliser sur une propriété ou un champ particulier un-à-plusieurs. Notez les points suivants :
Si l'expression ne commence pas par un champ ou une propriété qui représente une relation un-à-plusieurs, une exception est levée.
Si un opérateur autre qu'un opérateur valide apparaît dans l'expression, une exception est levée. Les opérateurs valides sont les suivants :
Où
OrderBy
ThenBy
OrderByDescending
ThenByDescending
Take
Exemples
Dans l’exemple suivant, la boucle interne itère uniquement sur ceux Orders
qui n’ont pas été expédiés aujourd’hui.
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
Remarques
Pour plus d’informations sur la façon d’éviter les cycles, consultez DataLoadOptions.