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 |
---|---|
Gibt den logischen Namen des Attributs im Bedingungsausdruck an. |
|
Gibt den Bedingungsoperator an. Dies wird mit der ConditionOperator-Enumeration festgelegt. |
|
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