Erstellen von Abfragen mit QueryExpression
In Microsoft Dataverse können Sie die Klasse QueryExpression zum programmgesteuerten Erstellen einer Abfrage verwenden, die Datenfilter und Suchbedingungen enthält, die den Umfang einer Datenbanksuche definieren. Ein Abfrageausdruck wird für Einzelobjektsuchen (Tabelle) verwendet. Beispielsweise können Sie eine Suche erstellen, um alle Firmen zurückzugeben, die bestimmten Suchkriterien entsprechen. Die Klasse QueryBase ist die Basisklasse für Abfrageausdrücke. Es gibt drei abgeleitete Klassen: QueryExpression, QueryByAttribute und FetchExpression. Die Klasse QueryExpression
unterstützt komplexe Abfragen. Die Klasse QueryByAttribute
ist eine einfache Möglichkeit, um nach Tabellenzeilen zu suchen, bei denen Spalten mit angegebenen Werten übereinstimmen.
Hinweis
Mit der dritten abgeleiteten Klasse FetchExpression
wird FetchXML, der proprietären Dataverse Abfragesprache, gearbeitet, mit der einige Abfragen mithilfe XML-basierter Abfragen durchgeführt werden können. Weitere Informationen: Daten mithilfe von FetchXML abfragen
Abfrageausdrücke werden in Methoden verwendet, die mehr als eine Zeile abfragen, z. B. IOrganizationService.RetrieveMultiple Methode, in Nachrichten, die eine Operation mit einer durch einen Abfrageausdruck spezifizierten Ergebnismenge durchführen, z.B. BulkDeleteRequest und wenn die ID für einen bestimmten Datensatz nicht bekannt ist.
Warnung
Rufen Sie nicht alle Spalten in einer Abfrage ab, da dadurch die Leistung beeinträchtigt wird. Das trifft insbesondere zu, wenn die Abfrage als Parameter in einer Updateanforderung verwendet wird. Wenn bei einer Aktualisierung alle Spalten einbezogen werden, legt dies alle Feldwerte fest, auch wenn sie unverändert sind, und löst oft kaskadierte Aktualisierungen in untergeordneten Datensätzen aus.
Um eine Abfrage zu speichern, sodass Sie sie wiederverwenden können, können Sie sie mithilfe von FetchXML konvertieren QueryExpressionToFetchXmlRequest und als gespeicherte Abfrage speichern. Weitere Informationen: Gespeicherte Abfragen
Alternativen für QueryExpression
Es gibt zwei weitere Möglichkeiten, Abfragen zu erstellen, um Datensätze aus Dataverse abzurufen.
- FetchXML, die proprietäre Dataverse Abfragesprache, kann verwendet werden, um einige Abfragen mithilfe von XML-basierten Abfragen durchzuführen. Weitere Informationen: Daten mithilfe von FetchXML abfragen.
- .NET Language-Integrated Query (LINQ). Weitere Informationen: Erstellen von Abfragen mit LINQ (.NET Language-Integrated Query).
Konfiguration für die Schnellsuche
In modellgesteuerten Apps gibt es eine Schnellsuchfunktion. Wenn ein Benutzer bei der Schnellsuche Suchkriterien angibt, die nicht selektiv genug sind, wird dies vom System erkannt und die Suche wird beendet. Dies unterstützt eine schnellere Form der Schnellsuche und kann einen großen Leistungsunterschied ausmachen. Dies wird von der Spalte QuickFindRecordLimitEnabled der Organisationstabelle gesteuert. Wenn dieser Boolean
-Spaltenwert true
ist, wird Abfragen für die Schnellsuche ein Limit auferlegt.
In diesem Abschnitt
Verwenden der QueryByAttribute-Klasse
Verwenden der QueryExpression-Klasse
Verwenden der ColumnSet-Klasse
Verwenden der ConditionExpression-Klasse
Verwenden der FilterExpression-Klasse
Verwenden einer linken äußeren Verknüpfung in QueryExpression für Abfragen nach Datensätzen, die „nicht in“ sind.
Page Große Ergebnismengen mit Abfrageausdruck und FetchXML
Beispiel: Abrufen bei 1:n-Beziehung
Beispiel: Abrufen von Vielfachen mit der Abfrage nach dem Attribut
Beispiel: Abrufen von Vielfachen mit Abfrageausdruck
Beispiel: Verwenden von QueryExpression mit einem Auslagerungscookie
Referenz
QueryBase
QueryExpression
QueryByAttribute
RetrieveMultiple
ColumnSet
ConditionExpression
FilterExpression
PagingCookie
Siehe auch
Beispiel: Konvertieren von Abfragen zwischen Fetch und QueryExpression
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).