Как включить связанные таблицы в DbSet.Find ()?
Если я хочу включить связанные объекты в запрос EF7, это легко и просто:
var myThing = db.MyThings
.Include(t => t.RelatedThing)
.Where(t => t.SomeCondition == true)
.ToList();
Кроме того, есть хороший метод наDbSet<T>
это облегчает загрузку одного объекта по его ключу:
var myThing = db.MyThings.Find(thingId);
Но теперь я хочу загрузитьmyThing
по его идентификатору, наряду с егоRelatedThing
, К сожалению (и понятно).Find()
это методDbSet<T>
неIQueryable<T>
, Очевидно, я мог бы сделать это:
var myThing = db.MyThings
.Include(t => t.RelatedThing)
.SingleOrDefault(t => t.MyThingId == thingId);
Но я специально хочу использовать.Find()
метод, потому что это хорошо и универсально, и я пишу метод, который обычно загружает запись вместе с «включенными» отношениями, указаннымиExpression<Func<T, object>>
.
Любые предложения, как это сделать?