Ich bin mir nicht sicher, ob diese Frage schon beantwortet wurde. Ich habe mir einige Fragen angesehen, aber ich glaube, sie waren nicht ganz das, wonach ich gesucht habe.
Nehmen wir an, ich habe 3 Tabellen:
Restaurant 1.....M MenuCategory 1.....M MenuItem
Ich habe eine L2E-Abfrage, die in etwa so aussieht:
Restaurant = context.Restaurant
.Include(r => r.MenuCategory)
.FirstOrDefault(r => r.RestaurantId == resaurantId);
Das funktioniert bis zu einem gewissen Grad, aber es werden nur die Menükategorien vorgeladen.
Als Workaround bin ich in der Lage, um jede Kategorie zu iterieren und rufen Sie .Load() auf sie, aber dies wird viel mehr, dass in der Theorie sollte ich brauchen, zu schlagen.
Was ich wirklich gerne machen würde, ist etwas wie:
Restaurant = context.Restaurant
.Include(r => r.MenuCategory)
.Include(r => r.MenuCategory.MenuItems)
.FirstOrDefault(r => r.RestaurantId == resaurantId);
Aber das ist natürlich nicht möglich, da r.MenuCategory eine Aufzählung ist
ANTWORT 1:
context.Restaurant.Include("MenuCategory.MenuItems");
- Das funktioniert, ist aber nicht stark typisiert. Ich frage mich, ob jemand in der Lage ist, eine zweite Antwort zu finden, die stark typisiert ist (ich kann diese Frage auf eine andere Frage verschieben, da sie bereits beantwortet wurde, und das gut.
Ich habe diese Frage in eine andere Frage verschoben, da ich es für unfair hielt, einer Antwort, die perfekt ist und genau so funktioniert, wie sie sollte, etwas wegzunehmen: