DataLoadOptions.AssociateWith Method (LambdaExpression)

 

Filters the objects retrieved for a particular relationship.

Namespace:   System.Data.Linq
Assembly:  System.Data.Linq (in System.Data.Linq.dll)

public void AssociateWith(
	LambdaExpression expression
)

Parameters

expression
Type: System.Linq.Expressions.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

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);
    } 
}

.NET Framework
Available since 3.5
Windows Phone Silverlight
Available since 7.1
Return to top
Show: