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?