Teilen über


Verwenden der ConditionExpression-Klasse

 

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 ConditionExpression-Klasse verwenden, um ein Attribut mit einem Wert oder einer Wertemenge zu vergleichen, indem Sie einen Operator verwenden, wie beispielsweise "Ist gleich" oder "Größer als". Bei der ConditionExpression-Klasse können Sie Bedingungsausdrücke als Parameter an andere Klassen übergeben, wie beispielsweise QueryExpression und FilterExpression.

In der folgenden Tabelle sind die Eigenschaften aufgelistet, die Sie festlegen können, um eine Bedingung mithilfe der ConditionExpression-Klasse zu erstellen.

Eigenschaft

Beschreibung

AttributeName

Gibt den logischen Namen des Attributs im Bedingungsausdruck an.

Operator

Gibt den Bedingungsoperator an. Dies wird mit der ConditionOperator-Enumeration festgelegt.

Values

Gibt den Wert des Attributs an.

Wenn Sie die Methode AddCondition (oder den Konstruktor für ConditionExpression) verwenden, ist es wichtig zu wissen, ob das Array als mehrere Werte oder als Array hinzugefügt wird.

Das folgende Codebeispiel zeigt zwei unterschiedliche Ergebnisse, abhängig davon, wie das Array verwendet wird.

string[] values = new string[] { "Value1", "Value2" };
ConditionExpression c = new ConditionExpression("name", ConditionOperator.In, values);
Console.WriteLine(c.Values.Count); //This will output 2 
string[] values = new string[] { "Value1", "Value2" }object value = values;
ConditionExpression c = new ConditionExpression("name", ConditionOperator.In, value);
Console.WriteLine(c.Values.Count); //This will output 1 

In einigen Fällen ist erforderlich, entweder in object[] oder object umzuwandeln, je nach dem gewünschten Verhalten.

Wenn Sie eine Bedingung erstellen, die einen Attributwert mit einer Enumeration vergleicht, wie beispielsweise ein Statuscode, müssen Sie die Methode ToString verwenden, um den Wert in eine Zeichenfolge zu konvertieren.

Beispiel

Im folgenden Code wird gezeigt, wie die ConditionExpression-Klasse verwendet wird.

//  Query using ConditionExpression  
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("---------------------------------------");

Beispiel

Das folgende Codebeispiel zeigt, wie die ConditionExpression-Klasse verwendet wird, um auf den Status "Inaktiv" zu testen.

ConditionExpression condition3 = new ConditionExpression();
condition3.AttributeName = "statecode";
condition3.Operator = ConditionOperator.Equal;
condition3.Values.Add(AccountState.Active);

Siehe auch

ConditionExpression
Erstellen von Abfragen mit QueryExpression
Erstellen von Abfragen mit QueryExpression
Die FilterExpression-Klasse verwenden

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright