QueryExpression でクエリを作成する

Microsoft Dataverse では、QueryExpression クラスを使用して、データベース検索の範囲を定義した検索条件とデータ フィルターが含まれるクエリをプログラムで作成できます。 クエリ式は単一オブジェクト (テーブル) の検索に使用されます。 たとえば、ある特定の検索条件に合致するすべての取引先企業を返す検索を作成できます。 QueryBase クラスは、クエリ式の基本クラスです。 次の3つの派生するクラスがあります: QueryExpressionQueryByAttributeFetchExpressionです QueryExpression クラスは、複雑なクエリをサポートします。 QueryByAttribute クラスでは、指定した値と列が一致するテーブル行を簡単に検索することができます。

注意

3つめのクラス FetchExpression は、独自の Dataverse クエリ言語であるFetchXMLとともに使用され、XML ベースのクエリを使用して複数のクエリを実行することが可能です。 詳細情報: FetchXML を使用してデータをクエリする

クエリ式は IOrganizationService.RetrieveMultiple など、複数の行を取得するメソッドで使用されます BulkDeleteRequest などのクエリ式で指定された結果セットで操作を実行するメッセージで、特定のレコードの ID が不明な場合のメソッド。

警告

パフォーマンスへの悪影響があるため、クエリの全ての列を取得しないようにしてください。 これは、クエリが更新要求へのパラメーターとして使用される場合は特に true になります。 更新では、すべての列が含まれている場合、これによりすべてのフィールド値が、変更されなくても設定されます。また、多くの場合子レコードへ更新の伝播が発生します。

クエリを節約し再利用をするには、 QueryExpressionToFetchXmlRequest を使用してFetchXMLに変換し、保存されたクエリとして保存しておくことが可能です。 詳細: 保存済みクエリ

QueryExpression の代替

Dataverse からレコードを取得するクエリを作成する方法は、さらに 2 つの方法があります。

クイック検索の設定

モデル駆動型アプリには、クイック検索機能が実装されています。 ユーザーが十分な選択性のない検索条件を指定した場合、システムはこれを検出し、検索を停止します。 これにより、より迅速な簡易検索がサポートされ、パフォーマンスを大幅に向上させることができます。 組織テーブル QuickFindRecordLimitEnabled 列にて管理されています。 この Boolean 列の値が true の場合、クイック検索のクエリには制限が発生します。

このセクションの内容

QueryByAttribute クラスの使用
QueryExpression クラスの使用
ColumnSet クラスの使用
ConditionExpression クラスの使用
FilterExpression クラスの使用
左外部結合を QueryExpression で使用して「存在しない」記録をクエリする
クエリ式および FetchXML による大きな結果セットのページング
サンプル: 一対多関連付けでの取得
サンプル: 属性によるクエリでの複数取得
サンプル: クエリ式による複数取得
サンプル: ページング Cookie を使用した QueryExpression の使用

参照

QueryBase
QueryExpression
QueryByAttribute
RetrieveMultiple
ColumnSet
ConditionExpression
FilterExpression
PagingCookie

関連項目

サンプル: Fetch と QueryExpression の間でクエリを変換する

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。