Verschachtelte Datensätze
Verschachtelte Datensätze (NestedDataSets) können Sie bei Bedarf nachladen (Lazy-Loading) oder mit
Include vorab laden (Eager-Loading). Die Beispiele verwenden die Umsätze eines Artikels.
Bei Bedarf laden
var artikel = bpApp.QueryDataSet<Artikel>()
.First(a => a.ArtNr == "10000");
var umsaetze = artikel.Ums!.ToList();
Beim ersten Zugriff auf Ums werden die Umsätze geladen. Weitere Zugriffe auf dieselbe
Navigation desselben Objekts verwenden die bereits geladenen Daten.
Vorab laden
var artikel = bpApp.QueryDataSet<Artikel>()
.Include(a => a.Ums)
.First(a => a.ArtNr == "10000");
var umsaetze = artikel.Ums!.ToList();
Mit Include sind die Umsätze bereits geladen, wenn die Abfrage das Ergebnis zurückgibt.
COM lädt die untergeordneten Datensätze über zusätzliche Datenzugriffe.
Weitere Ebenen laden
Mit ThenInclude laden Sie untergeordnete Navigationen der zuvor ausgewählten Datensätze.
Ergebnisse projizieren
Für eine anschließende Projektion mit Select laden Sie die Ergebnisse zuerst:
var artikel = bpApp.QueryDataSet<Artikel>()
.Where(a => a.ArtNr == "10000")
.Include(a => a.Ums)
.ToList();
var ergebnis = artikel.Select(a => new { a.ArtNr, Umsaetze = a.Ums });