QueryExpression でクエリを作成する
Microsoft Dataverse では、QueryExpression クラスを使用して、データベース検索の範囲を定義した検索条件とデータ フィルターが含まれるクエリをプログラムで作成できます。 クエリ式は単一オブジェクト (テーブル) の検索に使用されます。 たとえば、ある特定の検索条件に合致するすべての取引先企業を返す検索を作成できます。 QueryBase クラスは、クエリ式の基本クラスです。 次の3つの派生するクラスがあります: QueryExpression、 QueryByAttribute 、 FetchExpressionです QueryExpression
クラスは、複雑なクエリをサポートします。 QueryByAttribute
クラスでは、指定した値と列が一致するテーブル行を簡単に検索することができます。
注意
3つめのクラス FetchExpression
は、独自の Dataverse クエリ言語であるFetchXMLとともに使用され、XML ベースのクエリを使用して複数のクエリを実行することが可能です。 詳細情報: FetchXML を使用してデータをクエリする
クエリ式は IOrganizationService.RetrieveMultiple など、複数の行を取得するメソッドで使用されます BulkDeleteRequest などのクエリ式で指定された結果セットで操作を実行するメッセージで、特定のレコードの ID が不明な場合のメソッド。
警告
パフォーマンスへの悪影響があるため、クエリの全ての列を取得しないようにしてください。 これは、クエリが更新要求へのパラメーターとして使用される場合は特に true になります。 更新では、すべての列が含まれている場合、これによりすべてのフィールド値が、変更されなくても設定されます。また、多くの場合子レコードへ更新の伝播が発生します。
クエリを節約し再利用をするには、 QueryExpressionToFetchXmlRequest を使用してFetchXMLに変換し、保存されたクエリとして保存しておくことが可能です。 詳細: 保存済みクエリ
QueryExpression の代替
Dataverse からレコードを取得するクエリを作成する方法は、さらに 2 つの方法があります。
- FetchXML (Dataverse 独自のクエリ言語) を使用すると、XML ベースのクエリを使用してクエリを実行できます。 詳細については、FetchXML を使用してデータをクエリする を参照してください。
- .NET 統合言語クエリ (LINQ) 詳細: LINQ (.NET 統合言語クエリ) を使用してクエリを作成する。
クイック検索の設定
モデル駆動型アプリには、クイック検索機能が実装されています。 ユーザーが十分な選択性のない検索条件を指定した場合、システムはこれを検出し、検索を停止します。 これにより、より迅速な簡易検索がサポートされ、パフォーマンスを大幅に向上させることができます。 組織テーブル QuickFindRecordLimitEnabled 列にて管理されています。 この Boolean
列の値が true
の場合、クイック検索のクエリには制限が発生します。
このセクションの内容
QueryByAttribute クラスの使用
QueryExpression クラスの使用
ColumnSet クラスの使用
ConditionExpression クラスの使用
FilterExpression クラスの使用
左外部結合を QueryExpression で使用して「存在しない」記録をクエリする
クエリ式および FetchXML による大きな結果セットのページング
サンプル: 一対多関連付けでの取得
サンプル: 属性によるクエリでの複数取得
サンプル: クエリ式による複数取得
サンプル: ページング Cookie を使用した QueryExpression の使用
参照
QueryBase
QueryExpression
QueryByAttribute
RetrieveMultiple
ColumnSet
ConditionExpression
FilterExpression
PagingCookie
関連項目
サンプル: Fetch と QueryExpression の間でクエリを変換する
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示