Eager Load All Properties with Entity Framework


So LazyLoadingEnabled = false apparently doesn't do what I thought it did. And has next to no documentation.

I design my entity trees very carefully. I think hard about every relationship. When I load up an entity that is an Aggregate Root, I want everything that is navigable to from there to load. That's how the Aggregate root concept works after all, if I want something to be weekly related I'd stick an id on the entity and manage the relationship myself.

Is there a way to do this with Entity Framework?

I don't think there's a way to have all of the navigation properties auto-eager load. How about making an extension method instead?

public static IQueryable<Company> LoadCompany(this IQueryable<Company> query) {
     return query.Include(x => x.Divisions)
                 .Include(x => x.Departments)
                 .Include(x => x.Employees);


var query = from company in db.Companies.LoadCompany()
            where company.Name == "Microsoft"
            select company;