QueryExpression でクエリを作成する

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

注意

3番目の派生クラスは、独自のクエリ言語である FetchExpression とともに使用され、XMLベースのクエリを使用していくつかのクエリを実行するために使用できます。 FetchXML Dataverse 詳細情報: FetchXML を使用してデータをクエリする

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

警告

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

クエリを再利用できるように保存するには、 FetchXML を使用して QueryExpressionToFetchXmlRequest クエリを変換し、保存済みクエリとして保存します。 詳細: 保存済みクエリ

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 分かかります。 個人データは収集されません (プライバシー ステートメント)。