我正在编写一个使用 XRM SDK 从 MS CRM 11 获取数据的应用程序。对于查找类型的字段,我想获取它们的相应定义,以便我可以从相关实体中检索所有可能的 id 和值。
我似乎找不到办法得到这个。我知道我可以获取实体实例值的实体引用以及如何从元数据中获取目标实体,但找不到任何东西来帮助我获取查找字段的所有查找 ID 和值。请帮忙!
编辑:
为了帮助他人,经过几天的调查,我确信我想做的事情不可能在服务器端使用 sdk。
我可以使用 RetrieveAttributeRequest 毫无问题地获取选择列表值并将生成的 AttributeMetaData 转换为 PicklistAttributeMetadata。您可以使用相同的技术通过转换为 LookupAttributeMetadata 来处理 Lookups,但这只会为您提供基类的一个有用属性:Targets。所有这些都是提供实体逻辑名称的字符串数组。它不会为您提供其他详细信息,例如映射的 Id/Name 属性或应用查询的查找的任何视图详细信息(例如,列出的联系人用于当前组织的主要联系人查找)。
所以,最后我不得不妥协。我可以从 Targets 获取目标实体名称并假设查找很简单——只需从实体中提取所有记录。Id 列是固定的,因此没问题,通常您可以安全地假设 Name 列可用(尽管可能是 asl_name 等,如果自定义)。
如果有人知道更好的方法,我会很乐意,心甘情愿地吃不起眼的馅饼!