I am doing hierarchical data binding on a grid, and I need to have the database server perform the sorting on my objects. I can easily sort the parent collection, but I can
If you need to have Ordering or Filtering on inner navigation properties (e.g. Models) then you cannot eager load them using Include method anymore. Instead, you can use EntityCollection<TEntity>.CreateSourceQuery Method like this:
List years = db.Years.OrderBy("it.Name").ToList();
foreach(year in years)
{
var makesQuery = year.Makes.CreateSourceQuery().OrderBy(m => m.Name);
year.Makes.Attach(makesQuery);
foreach(make in year.Makes)
{
var modelsQuery = make.Models.CreateSourceQuery().OrderBy(m => m.Name);
make.Models.Attach(modelsQuery);
foreach(model in make.Models)
{
var colQuery = model.Colors.CreateSourceQuery().OrderBy(c => c.Name);
model.Models.Attach(colQuery);
}
}
}
This way, the years object will be constructed with having all of its navigation properties ordered.