QueryExpression でクエリを作成する
公開日: 2017年1月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
Microsoft Dynamics 365 (オンラインおよび設置型) では、QueryExpression クラスを使用して、データベース検索の範囲を定義した検索条件とデータ フィルターが含まれるクエリをプログラムで作成できます。 クエリ式は単一オブジェクトの検索に使用されます。 たとえば、ある特定の検索条件に合致するすべての取引先企業を返す検索を作成できます。QueryBase クラスは、クエリ式の基本クラスです。 派生クラスには QueryExpression と QueryByAttribute の 2 つがあります。QueryExpression クラスは、複雑なクエリをサポートします。QueryByAttribute クラスでは、指定した値と属性が一致するエンティティを簡単に検索することができます。
クエリ式は、複数のレコードを取得するメソッド (IOrganizationService.RetrieveMultiple など)、およびクエリ式で指定された結果セットに対して操作を実行するメッセージ (BulkDeleteRequest など) で使用されます。また、指定のレコードの ID が不明なときにも使用されます。
さらに、Organization.QuickFindRecordLimitEnabled という新しい組織エンティティの属性もあります。 この Boolean 属性が true の場合、簡易検索クエリに制限が適用されます。 ユーザーが十分な選択性のない検索条件を指定した場合、システムはこれを検出し、検索を停止します。 これにより、より迅速な簡易検索がサポートされ、パフォーマンスを大幅に向上させることができます。
警告
パフォーマンスへの悪影響があるため、クエリの全属性を取得しないようにしてください。 これは、クエリが更新要求へのパラメーターとして使用される場合は特に true になります。 更新では、すべての属性が含まれている場合、これによりすべてのフィールド値が、変更されなくても設定されます。また、多くの場合子レコードへ更新の伝播が発生します。
Microsoft Dynamics 365 からレコードを取得するためのクエリを作成する方法は、さらに 2 つあります。FetchXML (独自の Microsoft Dynamics 365 クエリ言語) を使用すると、XML ベースのクエリを使用してクエリを実行できます。 詳細については、「FetchXML を使用したクエリの構築」を参照してください。 また、.NET 統合言語クエリ (LINQ) でもクエリを作成できます。詳細:LINQ (.NET 統合言語クエリ) を使用してクエリを作成する。
クエリを保存するには、QueryExpressionToFetchXmlRequest を使用してクエリを FetchXML に変換し、userquery エンティティを使用して、それを保存されたビューとして保存します。
このセクションの内容
左外部結合を QueryExpression で使用して "存在しない" 記録をクエリする
QueryExpression を使用して大きな結果セットをページングする
サンプル: QueryByAttribute クラスを使用した複数取得
サンプル: QueryExpression クラスを使用した複数取得
サンプル: ページング Cookie を使用した QueryExpression の使用
参照
関連項目
サンプル: Fetch と QueryExpression の間でクエリを変換する
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 著作権