C# 如何使用XRMSDK从MS CRM获取所有查找值

C# 如何使用XRMSDK从MS CRM获取所有查找值,c#,xrm,C#,Xrm,我正在编写一个应用程序,它使用XRMSDK从MS CRM 11获取数据。对于查找类型的字段,我希望获得其相应的定义,以便从相关实体检索所有可能的ID和值 我似乎找不到办法得到这个。我知道我可以获取实体实例值的实体引用,以及如何从元数据获取目标实体,但找不到任何东西来帮助我获取查找字段的所有查找ID和值。请帮忙 编辑: 为了帮助他人,经过几天的调查,我确信我想做的是不可能在服务器端使用sdk 我可以使用RetrieveAttributeRequest毫无问题地获取拾取列表值,并将结果Attribu

我正在编写一个应用程序,它使用XRMSDK从MS CRM 11获取数据。对于查找类型的字段,我希望获得其相应的定义,以便从相关实体检索所有可能的ID和值

我似乎找不到办法得到这个。我知道我可以获取实体实例值的实体引用,以及如何从元数据获取目标实体,但找不到任何东西来帮助我获取查找字段的所有查找ID和值。请帮忙

编辑:

为了帮助他人,经过几天的调查,我确信我想做的是不可能在服务器端使用sdk

我可以使用RetrieveAttributeRequest毫无问题地获取拾取列表值,并将结果AttributeMetaData强制转换为PicklistAttributeMetadata。您可以使用相同的技术通过强制转换为LookupAttributeMetadata来处理查找,但这只为基类提供了一个有用的属性:Targets。所有这些只是提供实体逻辑名称的字符串数组。它不提供其他详细信息,例如映射的Id/名称属性,也不提供应用查询的查找的任何视图详细信息(例如列出的联系人是当前组织的主要联系人查找)

所以,最后我不得不妥协。我可以从目标中获取目标实体名称,并假设查找很简单——只需从实体中提取所有记录。Id列是固定的,所以这是可以的,通常您可以安全地假设Name列是可用的(尽管可能是asl_Name等,如果是自定义的)


如果有人知道一个更好的方法,我会很高兴,心甘情愿地吃谦虚的馅饼

我相信您要做的是在使用元数据服务检索到实体名称后,获取特定实体的所有记录

如果您希望这样做,我建议查看SDK中的以下位置(我指的是CRM 2013的SDK)
SDK\SampleCode\JS\RESTEndpoint\JQueryRESTDataOperations\JQueryRESTDataOperations\Scripts
文件
JQueryRESTDataOperationsSample.JS


有一个名为
RetrieveMultiple
的函数,您可以使用该函数通过提供实体名称和任何过滤器(可选)来获取特定实体的所有记录。如果您需要帮助为过滤器创建oData查询,您可以下载oData查询Deisgner来形成查询。

我也这么认为!我已经搜索了几个小时,到了绝望的地步。我即将承认失败,但这似乎是一件如此简单的事情,以至于我无法相信没有其他人需要它,因此提出这个问题是我最后的努力。来吧,只要看看CRM SDK,你就会找到解决方法。SDK本身有很多例子可以给你提供结果。我只是想澄清一下,我不是在问这个问题,因为我没有看过。我花了好几个小时浏览SDK示例和互联网。我是Crm集成的新手(但不是开发),所以我肯定会错过一些非常明显的东西——因此我呼吁帮助。这并不是因为我懒惰,只希望别人为我工作,而是我完全承认我可能遗漏了一些明显的东西。来自某人的一个简单的指针或者至少是一个可能的确认会有所帮助。嗨,谢谢你的评论。我对术语有点不确定,但我是针对Crm 11(Office 365)工作的,我已经检查了SDK中的js文件,但正如您所说,它不存在。该文件也将出现在Crm 2011 SDK中,这也将适用于Crm 2011 online(您指的是Office 365)。