Datensätze lesen und schreiben
QueryDataSet<T>() übersetzt LINQ-Abfragen in GraphQL.
Die geladenen Datensätze können Sie mit Save() speichern
und mit Remove() löschen.
Abfragen
var artikel = qlApp.QueryDataSet<Products>()
.Where(a => a.ArtNr == "10000")
.FirstOrDefault();
Felder auswählen
var artikel = qlApp.QueryDataSet<Products>(includes: ["ArtNr", "SuchBeg"])
.Where(a => a.ArtNr == "10000")
.FirstOrDefault();
Mit includes begrenzen Sie die geladenen Felder. Nicht geladene Felder behalten ihren Standardwert.
Berücksichtigen Sie auch Felder, die Sie anschließend für Berechnungen oder lokale Filter verwenden.
Die Feldauswahl steht ebenso bei ReadDataSet,
QueryChanged und
ReadChanged zur Verfügung.
Ergebnisse begrenzen
var artikel = qlApp.QueryDataSet<Products>(includes: ["ArtNr", "SuchBeg"])
.OrderBy(a => a.ArtNr)
.Skip(100)
.Take(50)
.ToList();
Ergebnisse projizieren
Mit Select bestimmen Sie die Form des Ergebnisses:
var artikel = qlApp.QueryDataSet<Products>()
.Where(a => a.ArtNr == "10000")
.Select(a => new { a.ArtNr, a.SuchBeg })
.ToList();
Mit ReadDataSet lesen
ReadDataSet verwendet denselben Abfragezugriff wie QueryDataSet.
Die Ergebnisse bleiben änderbar.
foreach (var artikel in qlApp.ReadDataSet<Products>(includes: ["ArtNr", "SuchBeg"]))
{
Console.WriteLine($"{artikel.ArtNr}: {artikel.SuchBeg}");
}
Änderungen seit einem Zeitpunkt
var seit = DateTime.Now.AddDays(-7);
foreach (var artikel in qlApp.QueryChanged<Products>(seit))
{
Console.WriteLine(artikel.ArtNr);
}
QueryChanged liefert Datensätze, deren Änderungsdatum nach dem angegebenen Zeitpunkt liegt.
ReadChanged ist die entsprechende Variante mit dem Leseverhalten von ReadDataSet.
Anlegen
var artikel = qlApp.AddDataSet<Products>();
artikel.ArtNr = "TEST123";
artikel.SuchBeg = "Testartikel";
artikel.Save();
Ändern
var artikel = qlApp.QueryDataSet<Products>()
.First(a => a.ArtNr == "TEST123");
artikel.SuchBeg = "Neue Bezeichnung";
artikel.Save();
Löschen
var artikel = qlApp.QueryDataSet<Products>()
.First(a => a.ArtNr == "TEST123");
artikel.Remove();
Untergeordnete Datensätze laden
Untergeordnete Datensätze wie die Umsätze eines Artikels können Sie beim Zugriff nachladen
oder mit Include vorab laden. Beides ist unter Verschachtelte Datensätze
beschrieben.
Abfrageplan prüfen
Explain() liefert einen
QueryPlan mit dem gewählten Index, dem Filter und den im Speicher
ausgewerteten Bedingungen.
var plan = qlApp.QueryDataSet<Addresses>()
.Where(a => a.Status == "Kunde")
.OrderBy(a => a.ID)
.Explain();
Console.WriteLine(plan);
Weitere Funktionen
Save() ohne Änderungen sendet keine Mutation. Optionen für bedingtes Anlegen,
Schreibsperren und Konsistenzprüfungen stehen unter Abfrage- und Schreiboptionen.