QueryByAttribute クラスを使用して、一連の列 (属性) を値のセットに対してテストするクエリを作成できます。 このクラスは、 RetrieveMultiple メソッドまたは IOrganizationService.RetrieveMultipleRequest メソッドと共に使用します。
次の表に、 QueryByAttribute クラスを使用してクエリ式を作成するために設定できるプロパティを示します。
| プロパティ | Description |
|---|---|
| EntityName | 取得するテーブルの種類を指定します。 クエリ式は、1 つのテーブル型のコレクションのみを取得できます。 QueryExpression コンストラクターを使用して、この値を渡すこともできます。 |
| ColumnSet | 取得する列 (属性) のセットを指定します。 |
| Attributes | クエリで選択された属性のセットを指定します。 |
| Values | クエリの実行時に検索する列の値を指定します。 |
| Orders | クエリから行が返される順序を指定します。 |
| PageInfo | クエリから返されるページ数とページあたりの行数を指定します。 |
次のコード例は、 QueryByAttribute クラスの使用方法を示しています。
// Create query using querybyattribute
QueryByAttribute querybyexpression = new QueryByAttribute("account");
querybyexpression.ColumnSet = new ColumnSet("name", "address1_city", "emailaddress1");
// Attribute to query
querybyexpression.Attributes.AddRange("address1_city");
// Value of queried attribute to return
querybyexpression.Values.AddRange("Detroit");
// Query passed to the service proxy
EntityCollection retrieved = _serviceProxy.RetrieveMultiple(querybyexpression);
// Iterate through returned collection
foreach (var c in retrieved.Entities)
{
System.Console.WriteLine("Name: " + c.Attributes["name"]);
System.Console.WriteLine("Address: " + c.Attributes["address1_city"]);
System.Console.WriteLine("E-mail: " + c.Attributes["emailaddress1"]);
}