1

以前は、CrmSvcUtil と 2011 エンドポイントを使用して、Dynamics CRM の早期バインド クラスを生成していました。
これはまだ機能しますが、非推奨になるため、新しい OData エンドポイントを理解し、これを使用してクラスを生成しようとしています

適切な URL を参照して、CRM のエンティティ モデル XML を表示できます。

https://myorg.crm4.dynamics.com/api/data/v8.1/ $metadata

または、CRM の開発者セクションから XML をダウンロードすることもできます。

odata メタデータをダウンロードする

どちらの場合も、エンティティ モデルを定義する XML で終了します。

<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
  <edmx:Reference Uri="http://vocabularies.odata.org/OData.Community.Keys.V1.xml">
    <edmx:Include Namespace="OData.Community.Keys.V1" Alias="Keys" />
    <edmx:IncludeAnnotations TermNamespace="OData.Community.Keys.V1" />
  </edmx:Reference>
  <edmx:Reference Uri="http://vocabularies.odata.org/OData.Community.Display.V1.xml">
    <edmx:Include Namespace="OData.Community.Display.V1" Alias="Display" />
    <edmx:IncludeAnnotations TermNamespace="OData.Community.Display.V1" />
  </edmx:Reference>
  .... blah blah ....

これを厳密に型指定された C# クラスのセットに変換するにはどうすればよいですか?

OData v4 クライアント コード ジェネレーター ツールの使用を推奨するこのガイドを見つけましたが、これはやり過ぎのように思われ、将来的に機能しなくなる可能性のあるツールの使用は避けたいと思います。

EDMX ファイルを変換できるDataSvcUtil.exe の MSDN 記事も見ましたが、XML があります。ファイル拡張子を変更しようとしましたが、変換されず、エラーがスローされます。

エラー 7001: 'Scale' 属性が無効です - 値 'Variable' はそのデータ型によると無効です ' http://schemas.microsoft.com/ado/2007/05/edm:TScaleFacet ' - 文字列 'Variable' は有効な整数値ではありません。
文字列 'Variable' は有効な整数値ではありません。

私は今行き詰まっており、これを行うための推奨される方法がわかりません。

4

1 に答える 1

1

Microsoft は、SDK を 2011 エンドポイントから WebAPI に移行すると述べています。それがアーリー バインド タイプに対して何を意味するのか、詳細は聞いていませんが、それまでに正式な回答が得られると思います。(おそらく CrmWebApiUtil.exe) CrmSrvUtil はもともとサード パーティによって作成されたもので、Microsoft がその所有権を取得しただけだと思います。

于 2016-08-11T15:23:01.113 に答える