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

Die dritte abgeleitete Klasse, FetchExpression wird mit FetchXML verwendet, die proprietäre Dataverse Abfragesprache kann verwendet werden, um einige Abfragen auszuführen, indem XML-basierte Abfragen verwendet werden. 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 zur Wiederverwendung zu speichern, können Sie sie mithilfe von QueryExpressionToFetchXmlRequest in FetchXML konvertieren und sie 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.

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.
Auslagern von umfangreichen Ergebnissätzen 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).