Freigeben über


Erstellen von Abfragen mit QueryExpression

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

In Microsoft Dynamics 365 (online und lokal) 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 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 zwei abgeleitete Klassen: QueryExpression und QueryByAttribute. Die Klasse QueryExpression unterstützt komplexe Abfragen. Die Klasse QueryByAttribute ist eine einfache Möglichkeit, um nach Entitäten zu suchen, bei denen Attribute mit angegebenen Werten übereinstimmen.

Abfrageausdrücke werden in Methoden verwendet, die mehr als einen Datensatz abrufen, wie beispielsweise die Methode IOrganizationService.RetrieveMultiple, in Meldungen, die einen Vorgang an einer von einem Abfrageausdruck angegebenen Ergebnismenge ausführen, wie beispielsweise BulkDeleteRequest und wenn die ID für einen bestimmten Datensatz nicht bekannt ist.

Darüber hinaus gibt es ein neues Attribut für die Organisationsentität, Organization.QuickFindRecordLimitEnabled. Wenn dieses Boolean Attribut true ist, wird Abfragen für die Schnellsuche ein Limit auferlegt. 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.

Warnung

Rufen Sie nicht alle Attribute 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 in einem Update alle Attribute enthalten sind, werden dadurch alle Feldwerte festgelegt, selbst wenn sie unverändert sind, und häufig werden kaskadierende Updates zu untergeordneten Datensätzen ausgelöst.

Es gibt zwei weitere Möglichkeiten, Abfragen zu erstellen, um Datensätze aus Microsoft Dynamics 365 abzurufen.FetchXML, die herstellereigene Microsoft Dynamics 365-Abfragesprache, kann verwendet werden, um einige Abfragen auszuführen, indem XML-basierte Abfragen verwendet werden. Weitere Informationen finden Sie unter Abfragen erstellen mit FetchXML. Sie können auch .NET Language-Integrated Query (LINQ) verwenden, um Abfragen zu schreiben.Weitere Informationen:Erstellen von Abfragen mit LINQ (.NET language-integrated query).

Um eine Abfrage zu speichern, können Sie sie in FetchXML konvertieren, indem Sie QueryExpressionToFetchXmlRequest verwenden und mithilfe der userquery-Entität als gespeicherte Ansicht speichern.

In diesem Abschnitt

Verwenden der QueryByAttribute-Klasse

Verwenden der QueryExpression-Klasse

Verwenden der ColumnSet-Klasse

Verwenden der ConditionExpression-Klasse

Die FilterExpression-Klasse verwenden

Verwenden einer linken äußeren Verknüpfung in QueryExpression für Abfragen nach Datensätzen, die „nicht in“ sind.

Test auf einen Nullwert

Auslagern von umfangreichen Ergebnissätzen mit QueryExpression

Beispiel: Abrufen bei 1: n-Beziehung

Beispiel: Abruf von Vielfachen mit der QueryByAttribute-Klasse

Beispiel: Rufen Sie mit der QueryExpressions-Klasse Vielfaches ab

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

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright