轻松快捷地获取CRM实体名称

mat*_*zek 2 c# sdk dynamics-crm-2011

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

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

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

有没有一种简单的方法可以使用CRM-SDK和查询获取实体名称(实体引用的Name属性)?

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

到目前为止我的方法:

  • 在插件中检索实体
  • 获取特定属性(类型:EntityReference)
  • 获取该EntityReference的名称
    • 如果该名称是null,请执行查询以获取该名称(帮助!如何?)
  • 在某些逻辑中使用该名称

Ser*_*eyS 5

为此,您需要拥有EntityReference实体的EntityMetadata.然后您可以获取EntityMetadata.PrimaryNameAttribute属性,它包含主名称属性的名称.鉴于该属性名称,您可以获得所需的内容.在此处查看有关此属性的更多信息:http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.metadata.entitymetadata.primarynameattribute.aspx

  • 是的,您需要实体的元数据才能找到其主要属性名称. (2认同)