2

在检索包括所有属性的 CRM 实体时,在某些情况下,某些具有该类型的属性EntityReference没有名称。在这种情况下,ID设置了引用的 ,但它的Name属性是null

我必须使用该名称进行一些评估。因此,我试图查询该引用实体以获取其名称。问题是,包含实体名称的属性对于不同的实体类型是不同的。

(例如,对于 Account,它是“name”,对于 Incident,它是“title”,对于其他类型,它是“somePrefix_name_or_so”)

是否有使用 CRM-SDK 和查询获取实体名称(实体引用的名称属性)的简单方法?

其他详细信息:代码位于 CRM 插件中。那里的前/后图像通常包含所有属性,但在某些情况下,在更新期间,(几乎)所有实体引用都会丢失它们的名称。字典中的属性仍然存在,包括 EntityReference 对象。只有 EntityReference 实例的 Name 属性为空。

到目前为止我的方法:

  • 在插件中检索实体
  • 获取特定属性(类型: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 回答