检索包含所有属性的CRM实体时,在某些情况下,类型为EntityReference
的某些属性没有名称。在这种情况下,设置了引用的ID
,但其Name
属性为null
。
我不得不用这个名字来做一些评估。因此,我试图查询被引用的实体以获取其名称。问题是,包含实体名称的属性因不同的实体类型而异。
(例如,对于帐户,它是"名称",对于偶发事件,它的"标题",对于其他类型,它的名称是"somePrefix_name_or_so")
有没有一种简单的方法可以使用CRM-SDK和查询来获取实体名称(实体引用的name属性)?
其他详细信息:该代码位于CRM插件中。在那里,前/后图像通常包含所有属性,但在某些情况下,在更新过程中,(几乎)所有实体引用都会丢失其名称。字典中的属性仍然存在,包括EntityReference对象。只有EntityReference实例的Name属性为null。
到目前为止我的方法:
- 在插件中检索实体
- 获取特定属性(类型:EntityReference)
- 获取该EntityReference的名称
- 如果该名称为
null
,请执行查询以获取该名称(帮助!如何?)
- 如果该名称为
- 在某些逻辑中使用该名称
为此,您需要拥有具有EntityReference的实体的EntityMetadata。然后您可以获取EntityMetadata.PrimaryNameAttribute属性,它包含主名称的属性的名称。给定该属性名称,就可以获得所需的内容。请在此处查看有关此属性的更多信息:http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.metadata.entitymetadata.primarynameattribute.aspx