ConditionExpression クラスの使用

 

公開日: 2016年11月

対象: Dynamics CRM 2015

Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラムでは、 ConditionExpression クラスで "等しい"、"より大きい" などの演算子を使用して、特定の属性と値または一連の値を比較できます。ConditionExpression クラスは、条件式をパラメーターとして他のクラス (QueryExpressionFilterExpression など) に引き渡せるようにします。

ConditionExpression クラスを使用して条件を作成する際に設定できるプロパティを次の表に示します。

プロパティ

説明

AttributeName

条件式内の属性の論理名を指定します。

Operator

条件演算子を指定します。 これは、ConditionOperator 列挙体を使用して設定します。

Values

属性の値を指定します。

AddCondition メソッド (または ConditionExpression のコンストラクター) を使用するときは、配列が複数の値として追加されるか、配列として追加されるかをよく理解したうえで、作業を行ってください。

次のコードは、配列の使い方によって結果が異なる例です。

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 

希望する動作に応じて、object[]object に型を変換しなければならない場合があります。

状態コードなどの列挙体と属性値を比較する条件を作成する場合は、必ず ToString メソッドを使用して値を文字列に変換してください。

次のコード例は、ConditionExpression クラスの使用方法を示しています。

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

次のコード例は、ConditionExpression クラスを使用して非アクティブ状態をテストする方法を示しています。

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

関連項目

ConditionExpression
QueryExpression でクエリを作成する
QueryExpression でクエリを作成する
FilterExpression クラスの使用

© 2017 Microsoft. All rights reserved. 著作権