Web API クエリ データのサンプル (C#)

この .NET 6.0 サンプルでは、Dataverse Web API を使用して一般的なデータ演算を実行する方法を示します。

このサンプルでは、WebAPIService クラス ライブラリ (C#) の共通ヘルパー コードを使用します。

注意

このサンプルは、Dataverse 操作や Web API Query Data Sample のコンソール出力の詳細を実装し、Web API Samples (C#) で説明されている一般的な C# 構造を使用します。

前提条件

以下は、このサンプルの構築および実行に必要となります :

  • Microsoft Visual Studio 2022。
  • データ演算を実行する権限を使用して Dataverse にアクセスします。

このサンプルを実行する方法

  1. PowerApps-サンプル リポジトリをクローンまたはダウンロードします。

  2. /dataverse/webapi/C#-NETx/QueryData/ フォルダーを見つけます。

  3. Visual Studio 2022 を使用して QueryData.sln ファイルを開きます

  4. appsettings.json ファイルを編集して、以下のプロパティ値を設定します:

    Property 方法
    Url ご使用の環境の Url。 プレースホルダー https://yourorg.api.crm.dynamics.com の値を環境の値に置き換えます。 詳細については、開発者向けリソースを表示する を参照してください。
    UserPrincipalName プレースホルダー you@yourorg.onmicrosoft.com の値を環境へのアクセスに使用する UPN の値に置き換えます。
    Password プレースホルダー yourPassword の値を使用するパスワードに置き換えます。
  5. appsettings.json ファイルを保存します

  6. F5 を押してサンプルを実行します。

コード

このサンプルのコードは次のとおりです: PowerApps-Samples/dataverse/webapi/C#-NETx/QueryData/Program.cs

実際の動作

このサンプルには 11 つのリージョンがあります:

セクション 0: クエリするレコードを作成

演算: 1 つの account レコードと 9 つの関連する contact レコードを作成します。 各 contact には、関連する task レコードが 3 つあります。

これは、このサンプルで使用されるデータです。

セクション 1 指定されたプロパティの選択

演算:

  • 取引先担当者エンティティに対して $select を使用して、必要なプロパティを取得します。
  • 注釈を含めると、@OData.Community.Display.V1.FormattedValue 注釈を使用してフォーマットされた値にアクセスできます

セクション 2 クエリ関数の使用

演算:

  • 標準クエリ関数 (containsendswithstartswith) を使用して結果をフィルターします。
  • Dataverse クエリ関数 (LastXhoursLast7DaysTodayBetweenIn) を使用します
  • フィルター演算子と論理演算子 (eqnegtandor) を使用します
  • 括弧 ((criteria1) and (criteria2)) or (criteria3) を使用して優先順位を設定します

セクション 3 順序とエイリアス

演算:

  • $orderby の使用
  • $filter$orderby でパラメータ化されたエイリアス (?@p1=fullname) を使用します

セクション 4 結果の制限とカウント

演算:

  • $top を使用して結果を制限します。
  • $count を使用してカウント値を取得します。

セクション 5 ページ割り付け

演算:

  • Prefer: odata.maxpagesize の要求ヘッダーを使用して、返される行数を制限します。
  • @odata.nextLink 注釈で返された URL を使用して、次のレコード セットを取得します。

セクション 6 結果の展開

演算:

  • 単一値のナビゲーション プロパティを持つ $expand
  • パートナー プロパティを持つ $expand
  • コレクション値のナビゲーション プロパティを持つ $expand
  • 単一の要求で複数のナビゲーション プロパティ タイプを持つ $expand
  • 入れ子になった $expand
  • 単一値とコレクション値のナビゲーション プロパティの両方を持つ入れ子になった $expand

セクション 7 結果の集計

演算: $apply=aggregateaveragesummin、& max を使用します。

セクション 8 FetchXML クエリ

演算:

  • ?fetchXml= を使用した fetchXml による要求を送信します
  • pagecount の属性を使用したページング。

セクション 9 定義済みクエリの使用

演算:

  • {entitysetname}?savedQuery={savedqueryid}を使用して保存されたクエリの結果を返します (システム ビュー)
  • {entitysetname}?userQuery={userquery} を使用してユーザー クエリの結果を返します (保存されたビュー)

セクション 10: サンプル レコードを削除

操作: このサンプルで作成された各レコードへの参照は、作成時にリストに追加されました。 このサンプルでは、レコードが $batch 演算を使用して削除されます。

参照

Web API を使用したクエリ データ
Web API クエリ データのサンプル
Dataverse Web API Web API 基本演算のサンプル (C#)
Web API 条件付き演算サンプル (C#)
Web API 機能およびアクションのサンプル (C#)
Web API テーブル スキーマ操作サンプル (C#)
Web API WebApiService の並列演算のサンプル (C#)
TPL データフロー コンポーネントを使用した Web API 並列演算のサンプル (C#)

注意

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

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