Retrieve Many Objects At Once
You can retrieve many objects in one query by using LoadWith.
Example
The following code uses the LoadWith method to retrieve both Customer and Order
objects.
var db = new AccessNorthwind(@"C:/Northwind.mdb");
var ds = new DataLoadOptions();
ds.LoadWith
<customer>(c => c.Orders);
ds.LoadWith<Order>(o => o.OrderDetails);
db.LoadOptions = ds;
var custQuery =
from cust in db.Customers
where cust.City == "London"
select cust;
foreach (Customer custObj in custQuery)
{
Console.WriteLine("Customer ID: {0}", custObj.CustomerID);
foreach (Order ord in custObj.Orders)
{
Console.WriteLine("\tOrder ID: {0}", ord.OrderID);
foreach (OrderDetail detail in ord.OrderDetails)
{
Console.WriteLine("\t\tProduct ID: {0}", detail.ProductID);
}
}
}
Dim db = New AccessNorthwind("C:/Northwind.mdb")
Dim ds = New DataLoadOptions()
ds.LoadWith(Of Customer)(Function(c) c.Orders)
ds.LoadWith(Of Order)(Function(o) o.OrderDetails)
db.LoadOptions = ds
Dim custQuery = _
From cust In db.Customers() _
Where cust.City = "London" _
Select cust
For Each custObj As Customer In custQuery
Console.WriteLine("Customer ID: {0}", custObj.CustomerID)
For Each ord As Order In custObj.Orders
Console.WriteLine(vbTab + "Order ID: {0}", ord.OrderID)
For Each detail As OrderDetail In ord.OrderDetails
Console.WriteLine(vbTab + vbTab + "Product ID: {0}", detail.ProductID)
Next
Next
Next