¿Cómo incluir tablas relacionadas en DbSet.Find ()?
Si quiero incluir objetos relacionados en una consulta EF7, es agradable y fácil:
var myThing = db.MyThings
.Include(t => t.RelatedThing)
.Where(t => t.SomeCondition == true)
.ToList();
Además, hay un buen método en elDbSet<T>
eso facilita cargar un solo objeto por su clave:
var myThing = db.MyThings.Find(thingId);
Pero ahora quiero cargarmyThing
por su Id, junto con suRelatedThing
. Desafortunadamente (y comprensiblemente).Find()
es un método deDbSet<T>
noIQueryable<T>
. Obviamente podría hacer esto:
var myThing = db.MyThings
.Include(t => t.RelatedThing)
.SingleOrDefault(t => t.MyThingId == thingId);
Pero específicamente quiero usar el.Find()
método, porque es agradable y genérico y estoy escribiendo un método que carga genéricamente un registro junto con las relaciones "incluidas" especificadas por unExpression<Func<T, object>>
.
¿Alguna sugerencia de cómo hacer esto?