組織サービスの事前バインド クラスを生成する

注意

エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。

CrmSvcUtil は、Microsoft Dataverse と使用するコマンドライン コード生成ツールです。 このツールは、Dataverse で使用されるエンティティ データ モデル (EDM) を表す、事前バインディングされた .NET Framework クラスを生成します。 コード生成ツール (CrmSvcUtil.exe) が Microsoft.CrmSdk.CoreTools NuGet パッケージの一部として配布されます。

注意

コード生成ツールのダウンロードについては、NuGet からツールをダウンロード を参照してください。

エンティティ クラスの生成

CrmSvcUtil.exe ツールは、組織内のテーブル用の厳密に型指定されたクラスが含まれる Microsoft Visual C# または Visual Basic .NET 出力ファイルを作成します。 これには、カスタム テーブルと列が含まれます。 この出力ファイルには各テーブルの Entity から派生した 1 つのクラスが含まれており、ユーザー定義コードを作成する作業を容易にする事前バインドと Visual Studio でサポートする IntelliSense を提供します。 生成されるクラスは部分クラスであり、別のファイルにユーザー定義のビジネス ロジックを作成することで拡張できます。 このツールに対する拡張機能を作成することもできます。 詳細については、コード生成ツールの拡張機能の作成 を参照してください。

OrganizationServiceContext の生成

また、このツールを使用して、EDM でのエンティティ コンテナーとして動作する OrganizationServiceContext からの派生クラスを生成することもできます。 このサービス コンテキストを利用して、変更内容を追跡したり、ID、同時実行、および関連付けを管理したりすることができます。 また、このクラスは、Dataverse に対してレテーブル行の挿入、更新、および削除を実行する SaveChanges() メソッドも提供します。 詳細については、 OrganizationServiceContext の使用を参照してください。

生成されたクラスの使用

コード生成ツールによって作成されるクラスは、クラス ライブラリに組み込むことで、Dataverse を使用するプロジェクトから参照できるように設計されています。 ツールを使用してクラス ファイルを生成した後で、そのファイルを Visual Studio プロジェクトに追加する必要があります。 また、生成したクラスが依存する複数のアセンブリへの参照を追加する必要があります。

次は、生成したコード ファイルを使用するときにこのプロジェクトで参照する必要があるアセンブリの一覧です。

  • Microsoft.Crm.Sdk.Proxy.dll
  • Microsoft.Xrm.Sdk.dll

これらのアセンブリは、 Microsoft.CrmSdk.CoreAssemblies NuGet パッケージに含まれます。 この NuGet パッケージを使用して、これらのアセンブリを Visual Studio プロジェクトへ追加します。

コード生成ツールの実行

コード生成ツールは複数のパラメーターを受け取ります。その値に基づいて、作成するファイルの内容が決定されます。 パラメーターは、ツールを実行するときにコマンドラインから入力するか、.NET に接続されたアプリケーションの構成ファイルに記述して渡すことができます。

NuGet からのツールのダウンロード で説明されているスクリプトを使用し、ツールをダウンロードしたときに作成された Tools\CoreTools フォルダから CrmSvcUtil.exe ツールを実行します。 このツールを別の場所のフォルダーから実行する場合は、Microsoft.Xrm.Sdk.dll アセンブリのコピーが同じフォルダーにあることを確認します。

次のサンプルは Dataverse のコマンド ラインからツールを実行するときの構文を示しています。 対話型ログインを使用するには、次のオプションを指定するだけで行えます。

CrmSvcUtil.exe /interactivelogin ^
/out:<outputFilename>.cs ^
/namespace:<outputNamespace> ^
/serviceContextName:<serviceContextName> ^
/generateActions

interactivelogin (ショートカット il) オプションでツールを実行する時に、ダイアログを開いて、ログイン資格情報および接続したいサーバを指定することができます。

コマンド ラインで直接渡すパラメータまたは、新しいクラスを生成するために実行できるバッチ (.bat) ファイルを指定することもできます。

CrmSvcUtil.exe ^
/url:https://<organizationUrlName>.api.crm.dynamics.com/XRMServices/2011/Organization.svc ^
/out:<outputFilename>.cs ^
/username:<username> ^
/password:<password> ^
/namespace:<outputNamespace> ^
/serviceContextName:<serviceContextName>

たとえば、次のようになります。

CrmSvcUtil.exe ^
/url:https://myorganization.api.crm.dynamics.com/XRMServices/2011/Organization.svc ^
/out:MyOrganizationSdkTypes.cs ^
/username:you@yourOrg.onmicrosoft.com ^
/password:myp455w0rd ^
/namespace:MyOrg ^
/serviceContextName:MyContext

注意

上記の例では、読みやすさのためにパラメータのリストを分割するために carat (^) 文字を使用しています。 メモ帳を使用して引数でコマンド パラメータを構成し、コマンド ラインに貼り付けることができます。

  • username および password パラメータには、Dataverse にサインインするために使用するユーザー名とパスワードを入力します。
  • url パラメータは、設定 を選択し、カスタマイズ に移動して、開発者リソース を選択すると、Web アプリケーションで正しい URL を検索することができます。 URL は 組織のサービス の下に表示されます。

サポートされているコマンド ライン パラメーターを表示するには、次のコマンドを使用します。

CrmSvcUtil.exe /?  

パラメーター

次の表は、コード生成ツールのパラメーターと、それらの使い方の簡単な説明です。

パラメーター ショートカット 説明 必須出席者
deviceid di 不要になりました いいえ
devicepassword dp 不要になりました いいえ
domain d 設置型サーバーに接続するときに認証先となるドメイン。 いいえ
url 組織サービスの URL。 interactivelogin を使わない限り、はいです
out o 生成するコードのファイル名。 はい
language l コードを生成する言語。 これは、「CS」または「VB」のいずれかにすることができます。 既定値は 「CS」 です。 いいえ
namespace n 生成するコードの名前空間。 既定値はグローバル名前空間です。 いいえ
username u 認証用のサーバーに接続するときに使用するユーザー名。 いいえ
password p 認証用のサーバーに接続するときに使用するパスワード。 いいえ
servicecontextname 生成する組織サービス コンテキスト クラスの名前。 値を指定しない場合は、サービス コンテキストが作成されません。 いいえ
help ? コマンドの使用方法に関する情報を表示します。 いいえ
nologo 実行時にメッセージを表示しません。 いいえ
generateActions 定義アクションの要求クラスと応答クラスを生成します。 無効
interactivelogin il 使用すると、Dataverse サービスにログインするためのダイアログが表示されます。 コマンド ラインで指定された他のすべての接続関連パラメーターは無視されます。 いいえ
connectionstring connstr Dataverse の組織に接続するための、単一文字列として提供される情報を格納します。 コマンド ラインで指定された他のすべての接続関連パラメーターは無視されます。 詳細については、XRM ツールの接続文字列を使用して、Dataverse に接続を参照してください。 無効

構成ファイルの使用

CrmSvcUtil.exe.config 構成ファイルは、CrmSvcUtil.exe ツールと同じフォルダーに存在する必要があります。 構成ファイルでは、 appSettings セクションに標準のキー/値ペアを使用します。 ただし、コマンドラインから値を入力した場合は、その値が構成ファイル内の値の代わりに使用されます。 アプリケーションの構成ファイルにあるキー/値ペアのうち、想定されているパラメーターのいずれにも一致しないものは無視されます。

url パラメーターと namespace パラメーターは、構成ファイルに記述しないでください。 これらは、CrmSvcUtil.exe ツールの実行中にコマンドラインから入力する必要があります。

次のサンプルは、ショートカット キーを使用して、アプリケーション構成ファイルに出力ファイルとドメイン名のパラメーターを構成する方法を示しています。

<appSettings>    
    <add key="o" value="CrmProxy.cs"/>    
    <add key="d" value="mydomain"/>
</appSettings>  

トレースの有効化

ツール実行中のトレースを有効にするには、次の行を構成ファイルに追加します。

<system.diagnostics>   
   <trace autoflush="false" indentsize="4">   
      <listeners>   
         <add name="configConsoleListener" type="System.Diagnostics.ConsoleTraceListener">   
            <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" />   
         </add>   
      </listeners>   
   </trace>   
</system.diagnostics>  

サポートされているトレース オプションの詳細については、 XRMツールのトレースの構成参照してください。

コミュニティ ツール

事前バインド ジェネレーター は、XrmToolbox コミュニティのツールです。 コミュニティ開発ツールの詳細については、開発者のツールとリソーストピックを参照してください。

注意

コミュニティ ツールは Microsoft の製品ではなく、コミュニティ ツールに対するサポートは提供されません。 このツールに関するご質問は、その発行元にお問い合わせください。 詳細: XrmToolBox

関連項目

組織サービスを使用した遅延バンディングと事前バインディングのプログラミング
サンプル: 事前バインディング テーブル操作

コード生成ツール用の拡張機能の作成
開発者のツールとリソース
NuGet からツールをダウンロード

注意

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

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