Entity Framework - ¿Hay una forma de cargar automáticamente entidades secundarias sin Include ()?

¿Hay alguna manera de decorar sus clases de POCO para cargar automáticamente entidades secundarias sin tener que usarlas?Include() cada vez que los cargues?

Digamos que tengo un automóvil de clase, con propiedades complejas para ruedas, puertas, motor, parachoques, ventanas, escape, etc. Y en mi aplicación necesito cargar mi automóvil desde mi DbContext 20 lugares diferentes con diferentes consultas, etc. no quiero tener que especificar que quiero incluir todas las propiedades cada vez que quiero cargar mi auto.

quiero decir

List<Car> cars = db.Car
                .Where(x => c.Make == "Ford").ToList();

//NOT .Include(x => x.Wheels).Include(x => x.Doors).Include(x => x.Engine).Include(x => x.Bumper).Include(x => x.Windows)


foreach(Car car in cars)
{

//I don't want a null reference here.

String myString = car.**Bumper**.Title;
}

¿Puedo decorar de alguna manera mi clase de POCO o en miOnModelCreating() ¿O establece una configuración en EF que le indique que solo cargue todas las partes de mi auto cuando lo cargue? Quiero hacer esto con entusiasmo, por lo que tengo entendido que mis propiedades de navegación son virtuales. Sé que NHibernate soporta una funcionalidad similar.

Solo me pregunto si me estoy perdiendo algo. ¡Gracias por adelantado!

Aclamaciones,

Nathan

Me gusta la solución de abajo, peroMe pregunto si puedo anidar las llamadas a los métodos de extensión. Por ejemplo, digamos que tengo una situación similar con Engine donde tiene muchas partes que no quiero incluir en todas partes. ¿Puedo hacer algo como esto? (No he encontrado una manera de que esto funcione todavía). De esta manera, si más tarde descubro que Engine necesita inyectores de combustible, puedo agregarlo solo en BuildEngine y no tener que agregarlo también en BuildCar.Además, si puedo anidar las llamadas, ¿cómo puedo anidar una llamada a una recopilación? ¿Desea llamar a BuildWheel () para cada una de mis ruedas desde mi BuildCar ()?

public static IQueryable<Car> BuildCar(this IQueryable<Car> query) {
     return query.Include(x => x.Wheels).BuildWheel()
                 .Include(x => x.Doors)
                 .Include(x => x.Engine).BuildEngine()
                 .Include(x => x.Bumper)
                 .Include(x => x.Windows);
}

public static IQueryable<Engine> BuildEngine(this IQueryable<Engine> query) {
     return query.Include(x => x.Pistons)
                 .Include(x => x.Cylendars);
}

//Or to handle a collection e.g.
 public static IQueryable<Wheel> BuildWheel(this IQueryable<Wheel> query) {
     return query.Include(x => x.Rim)
                 .Include(x => x.Tire);
}

Aquí hay otro hilo muy similar en caso de que sea útil para alguien más en esta situación, pero aún así no puede ser capaz de realizar llamadas a los métodos de extensión.

Entity framework linq query Include () varias entidades hijas

Respuestas a la pregunta(2)

Su respuesta a la pregunta