QueryExpression クラスの使用
Microsoft Dataverse では、QueryExpression クラスを使用して、IOrganizationService.RetrieveMultiple メソッドまたは RetrieveMultipleRequest メッセージによってクエリの結果セットを絞り込むことができます。 QueryExpression に対するクエリ パラメーターは、ConditionExpression、ColumnSet、および FilterExpression の各クラスを使用して設定できます。
QueryExpression クラスを使用すると、複雑なクエリを作成できます。 QueryByAttribute クラスは、指定した値と列が一致するテーブル行を簡単に検索できるよう設計されています。
レコードのカウント
クエリで返るレコードの数を調べるには、クエリを実行する前に ReturnTotalRecordCount プロパティを true に設定します。 これを行うと、TotalRecordCount が設定されます。 そうでない場合、この値は -1 です。
例
次のサンプルは、QueryExpression クラスの使用方法を示します。
// Query using ConditionExpression and FilterExpression
ConditionExpression condition1 = new ConditionExpression();
condition1.AttributeName = "lastname";
condition1.Operator = ConditionOperator.Equal;
condition1.Values.Add("Brown");
FilterExpression filter1 = new FilterExpression();
filter1.Conditions.Add(condition1);
QueryExpression query = new QueryExpression("contact");
query.ColumnSet.AddColumns("firstname", "lastname");
query.Criteria.AddFilter(filter1);
EntityCollection result1 = _serviceProxy.RetrieveMultiple(query);
Console.WriteLine();Console.WriteLine("Query using Query Expression with ConditionExpression and FilterExpression");
Console.WriteLine("---------------------------------------");
foreach (var a in result1.Entities)
{
Console.WriteLine("Name: " + a.Attributes["firstname"] + " " + a.Attributes["lastname"]);
}
Console.WriteLine("---------------------------------------");
クエリ内の SQL ヒントを使用
QueryExpression クラスでは QueryHints という名前のプロパティが含まれています。 このプロパティを以下に示すサポートされている文字列値のいずれかに設定することにより、クエリの実行に影響する生成された SQL テキストのヒントを提供できます。
QueryHint 値 | SQL クエリ オプションとヒント |
---|---|
OptimizeForUnknown | 不明の最適化 |
ForceOrder | 強制注文 |
DisableRowGoal | ヒントを使用する ('Disable_Optimizer_RowGoal') |
EnableOptimizerHotfixes | ヒントを使用 ('ENABLE_QUERY_OPTIMIZER_HOTFIXES') |
LoopJoin | ループ結合 |
MergeJoin | マージ結合 |
HashJoin | ハッシュ結合 |
NO_PERFORMANCE_SPOOL | NO_PERFORMANCE_SPOOL |
MaxRecursion | MAXRECURSION 番号 |
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS | ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
関連項目
QueryExpression でクエリを作成する
ColumnSet クラスの使用
ConditionExpression クラスの使用
FilterExpression クラスの使用
QueryExpression
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。