Como incluir tabelas relacionadas no DbSet.Find ()?

Se eu quiser incluir objetos relacionados em uma consulta EF7, é fácil e agradável:

var myThing = db.MyThings
                .Include(t => t.RelatedThing)
                .Where(t => t.SomeCondition == true)
                .ToList();

Além disso, há um bom método noDbSet<T> que facilita o carregamento de um único objeto por sua chave:

var myThing = db.MyThings.Find(thingId);

Mas agora eu quero carregarmyThing pelo seu ID, juntamente com o seuRelatedThing. Infelizmente (e compreensivelmente).Find() é um método deDbSet<T>, nãoIQueryable<T>. Obviamente, eu poderia fazer isso:

var myThing = db.MyThings
                .Include(t => t.RelatedThing)
                .SingleOrDefault(t => t.MyThingId == thingId);

Mas eu quero especificamente usar o.Find() método, porque é legal e genérico e estou escrevendo um método que carrega genericamente um registro junto com os relacionamentos "incluídos" especificados por umExpression<Func<T, object>>.

Alguma sugestão de como fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion