2

すべての属性を含むCRMエンティティを取得する場合、タイプの属性の一部にEntityReference名前がない場合があります。その場合、ID参照のは設定されますが、そのNameプロパティはnullです。

私はいくつかの評価のために名前を使わなければなりません。したがって、私はその参照されたエンティティにクエリを実行してその名前を取得しようとしていました。問題は、エンティティ名を含む属性がエンティティタイプごとに異なることです。

(たとえば、アカウントの場合は「名前」、インシデントの場合は「タイトル」、その他のタイプの場合は「somePrefix_name_or_so」)

CRM-SDKとクエリを使用してエンティティ名(エンティティ参照のNameプロパティ)を取得する簡単な方法はありますか?

追加の詳細:コードはCRMプラグインにあります。プレ/ポストイメージには通常すべての属性が含まれていますが、更新中に(ほぼ)すべてのエンティティ参照の名前が失われる場合があります。ディクショナリの属性は、EntityReferenceオブジェクトを含めて引き続き存在します。EntityReferenceインスタンスのNameプロパティのみがnullです。

これまでの私のアプローチ:

  • プラグインでエンティティを取得する
  • 特定の属性を取得します(タイプ:EntityReference)
  • そのEntityReferenceの名前を取得します
    • その名前がnullの場合は、クエリを実行してその名前を取得します(ヘルプ!方法?)
  • いくつかのロジックでその名前を使用する
4

1 に答える 1

5

このためには、EntityReferenceがあるエンティティのEntityMetadataが必要です。次に、EntityMetadata.PrimaryNameAttributeプロパティを取得できます。これには、プライマリ名の属性の名前が含まれています。その属性名を指定すると、必要なものを取得できます。このプロパティの詳細については、http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.metadata.entitymetadata.primarynameattribute.aspxを参照してください。

于 2012-12-07T19:40:23.280 に答える