Share via


Verwenden der QueryExpression-Klasse

In Microsoft Dataverse können Sie mit der Klasse QueryExpression komplexe Abfragen für die Verwendung mit der IOrganizationService. RetrieveMultiple erstellen. Methode die RetrieveMultipleRequest Meldung verwenden. Sie können Abfrageparameter für QueryExpression, einrichten, indem Sie die Klassen ConditionExpression,i ColumnSet und FilterExpression verwenden.

Die QueryExpression-Klasse ermöglicht Ihnen, komplexe Abfragen zu erstellen. Die Klasse QueryByAttribute soll die Suche nach Tabellenzeilen vereinfachen, bei denen Spalten mit angegebenen Werten übereinstimmen.

Anzahl der Datensätze

Um festzustellen wie viele Datensätze eine Abfrage zurückgab legen Sie die Eigenschaft ReturnTotalRecordCount auf "true" fest, bevor Sie die Abfrage ausführen. Daraufhin wird TotalRecordCount festgelegt. Ansonsten ist dieser Wert -1.

Beispiel

Im folgenden Beispiel wird gezeigt, wie die QueryExpression-Klasse verwendet wird.

//  Query using ConditionExpression and FilterExpression  
ConditionExpression condition1 = new ConditionExpression();  
condition1.AttributeName = "lastname";  
condition1.Operator = ConditionOperator.Equal;  
condition1.Values.Add("Brown");              
  
FilterExpression filter1 = new FilterExpression();  
filter1.Conditions.Add(condition1);  
  
QueryExpression query = new QueryExpression("contact");  
query.ColumnSet.AddColumns("firstname", "lastname");  
query.Criteria.AddFilter(filter1);  
  
EntityCollection result1 = _serviceProxy.RetrieveMultiple(query);  
Console.WriteLine();Console.WriteLine("Query using Query Expression with ConditionExpression and FilterExpression");  
Console.WriteLine("---------------------------------------");  
foreach (var a in result1.Entities)  
{  
    Console.WriteLine("Name: " + a.Attributes["firstname"] + " " + a.Attributes["lastname"]);  
}  
Console.WriteLine("---------------------------------------");  

Verwenden von SQL-Hinweisen in einer Abfrage

Die QueryExpression-Klasse enthält eine Eigenschaft namens QueryHints. Indem Sie diese Eigenschaft auf einen der unten gezeigten unterstützten Zeichenfolgenwerte setzen, können Sie einen Hinweis für generierten SQL-Text bereitstellen, der sich auf die Ausführung der Abfrage auswirkt.

QueryHint-Wert SQL-Abfrageoption und -hinweis
OptimizeForUnknown Für unbekannt optimieren
ForceOrder Befehl durchsetzen
DisableRowGoal Hinweis verwenden („Disable_Optimizer_RowGoal”)
EnableOptimizerHotfixes Hinweis benutzen ('ENABLE_QUERY_OPTIMIZER_HOTFIXES')
LoopJoin Loop verbinden
MergeJoin Zusammenführen
HashJoin Hash Join
NO_PERFORMANCE_SPOOL NO_PERFORMANCE_SPOOL
MaxRecursion MAXRECURSION-Nummer
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS

Weitere Informationen: Hinweise (Transact-SQL) – Abfrage

Siehe auch

Erstellen von Abfragen mit QueryExpression
Verwenden der ColumnSet-Klasse
Verwenden der ConditionExpression-Klasse
Verwenden der FilterExpression-Klasse
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).