Control How Much Related Data Is Retrieved
Use the LoadWith method to specify which data related to your main target should
be retrieved at the same time. For example, if you know you will need information
about customers' orders, you can use LoadWith to make sure that the order information
is retrieved at the same time as the customer information. This approach results
in only one trip to the database for both sets of information.
Example
In the following example, all the Orders for all the Customers who are located in
London are retrieved when the query is executed. As a result, successive access
to the Orders property on a Customer object does not trigger a new database query.
var db = new AccessNorthwind(@"c:\northwind.mdb");
var dlo = new ALinq.DataLoadOptions();
dlo.LoadWith(c => c.Orders);
db.LoadOptions = dlo;
var londonCustomers =
from cust in db.Customers
where cust.City == "London"
select cust;
foreach (var custObj in londonCustomers)
{
Console.WriteLine(custObj.CustomerID);
}
Dim db = New AccessNorthwind("c:\northwind.mdb")
Dim dlo = New ALinq.DataLoadOptions()
dlo.LoadWith(Of Customer)(Function(c) c.Orders)
db.LoadOptions = dlo
Dim londonCustomers = _
From cust In db.Customers() _
Where cust.City = "London" _
Select cust
For Each custObj In londonCustomers
Console.WriteLine(custObj.CustomerID)
Next