DataLoadOptions.AssociateWith Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
AssociateWith(LambdaExpression) |
Filters the objects retrieved for a particular relationship. |
AssociateWith<T>(Expression<Func<T,Object>>) |
Filters objects retrieved for a particular relationship. |
AssociateWith(LambdaExpression)
Filters the objects retrieved for a particular relationship.
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
Identifies the query to be used on a particular one-to-many field or property. Note the following:
If the expression does not start with a field or property that represents a one-to-many relationship, an exception is thrown.
If an operator other than a valid operator appears in the expression, an exception is thrown. Valid operators are as follows:
Where
OrderBy
ThenBy
OrderByDescending
ThenByDescending
Take
Examples
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
Remarks
In the following example, the inner loop iterates only over those Orders
that have not been shipped today.
Applies to
AssociateWith<T>(Expression<Func<T,Object>>)
Filters objects retrieved for a particular relationship.
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
The type that is queried against.
If the type is unmapped, an exception is thrown.
Parameters
- expression
- Expression<Func<T,Object>>
Identifies the query to be used on a particular one-to-many field or property. Note the following:
If the expression does not start with a field or property that represents a one-to-many relationship, an exception is thrown.
If an operator other than a valid operator appears in the expression, an exception is thrown. Valid operators are as follows:
Where
OrderBy
ThenBy
OrderByDescending
ThenByDescending
Take
Examples
In the following example, the inner loop iterates only over those Orders
that have not been shipped today.
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
Remarks
For information about how to avoid cycles, see DataLoadOptions.