Wie bezogene Tabellen in DbSet.Find () aufnehmen?

Wenn ich verwandte Objekte in eine EF7-Abfrage aufnehmen möchte, ist das ganz einfach:

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

Auch gibt es eine schöne Methode auf derDbSet<T> das macht es einfach, ein einzelnes Objekt anhand seines Schlüssels zu laden:

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

Aber jetzt möchte ich ladenmyThing durch seine ID, zusammen mit seinemRelatedThing. Leider (und verständlicherweise).Find() ist eine Methode vonDbSet<T>, nichtIQueryable<T>. Natürlich könnte ich das machen:

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

Aber ich möchte ausdrücklich das @ verwend.Find() -Methode, weil sie nett und allgemein ist und ich eine Methode schreibe, die einen Datensatz generisch zusammen mit "eingeschlossenen" Beziehungen lädt, die durch ein @ angegeben sinExpression<Func<T, object>>.

Irgendwelche Vorschläge, wie das geht?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage