DataLoadOptions.AssociateWith(Of T) Method (Expression(Of Func(Of T, Object)))

 

Filters objects retrieved for a particular relationship.

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

Public Sub AssociateWith(Of T) (
	expression As Expression(Of Func(Of T, Object))
)

Parameters

expression
Type: System.Linq.Expressions.Expression(Of Func(Of 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

Type Parameters

T

The type that is queried against.

If the type is unmapped, an exception is thrown.

For information about how to avoid cycles, see DataLoadOptions.

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

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

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