DataLoadOptions.AssociateWith Method

Definition

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

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

Remarks

In the following example, the inner loop iterates only over those Orders that have not been shipped today.

Applies to

.NET Framework 4.8.1 and other versions
Product Versions
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

AssociateWith<T>(Expression<Func<T,Object>>)

Filters objects retrieved for a particular relationship.

public void AssociateWith<T>(System.Linq.Expressions.Expression<Func<T,object>> expression);

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

Remarks

For information about how to avoid cycles, see DataLoadOptions.

Applies to

.NET Framework 4.8.1 and other versions
Product Versions
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1