How to: Retrieve Many Objects At Once
This article is relevant to entity models that utilize the deprecated Visual Studio integration of Telerik Data Access. The current documentation of the Data Access framework is available here.
You can retrieve many objects in one query by using LoadWith.
The following code uses the LoadWith method to retrieve both Customer and Order objects.
using (NorthwindDbContext dbContext = new NorthwindDbContext())
{
Telerik.OpenAccess.FetchOptimization.FetchStrategy fetchStrategy =
new Telerik.OpenAccess.FetchOptimization.FetchStrategy();
fetchStrategy.LoadWith<Customer>(c => c.Orders);
dbContext.FetchStrategy = fetchStrategy;
IQueryable<Customer> query = from c in dbContext.Customers
where c.Country == "Germany"
select c;
foreach (Customer customer in query)
{
Console.WriteLine(customer.CustomerID);
foreach (Order order in customer.Orders)
{
Console.WriteLine("\t{0}", order.OrderID);
}
}
}
Using dbContext As New NorthwindDbContext()
Dim fetchStrategy As New Telerik.OpenAccess.FetchOptimization.FetchStrategy()
fetchStrategy.LoadWith(Of Customer)(Function(c) c.Orders)
dbContext.FetchStrategy = fetchStrategy
Dim query As IQueryable(Of Customer) = From c In dbContext.Customers
Where c.Country = "Germany"
Select c
For Each customer_Renamed As Customer In query
Console.WriteLine(customer_Renamed.CustomerID)
For Each order_Renamed As Order In customer_Renamed.Orders
Console.WriteLine(vbTab & "{0}", order_Renamed.OrderID)
Next order_Renamed
Next customer_Renamed
End Using