如何在 CRM 2016 中检索实体名称

l--*_*''' 4 c# dynamics-crm visual-studio dynamics-crm-2011 dynamics-crm-2016

在我们的解决方案中,我们动态构建 HTTP/ODATA 请求。

例如,我们将构建一个如下所示的 URL:

[http://org....api/v8.1/]accounts(00000000-0000-0000-0000-000000000001)/primarycontactid?$select=fullname
Run Code Online (Sandbox Code Playgroud)

我们如何动态获取所有实体(例如“帐户”)的列表?

2011年,我们只是简单地针对LeadSet/AccountSet/etcSet执行,2016年的策略是什么?

Paw*_*cki 5

我不知道是否有一些“语言”技巧(显然集合的名称只是实体的英文复数名称,但这对我来说还不够好),所以我喜欢这样 - 只需调用 webAPI 元数据:

http://[crmurl]/api/data/v8.2/EntityDefinitions?$select=EntitySetName,LogicalName&$filter=LogicalName eq 'account'
Run Code Online (Sandbox Code Playgroud)

结果如下:

{
  "@odata.context":"http://[crmurl]/api/data/v8.2/$metadata#EntityDefinitions(EntitySetName,LogicalName)","value":[
    {
      "EntitySetName":"accounts","LogicalName":"account","MetadataId":"70816501-edb9-4740-a16c-6a5efbc05d84"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

所以你明白了。当然,您可以简单地跳过这一$filter部分并简单地获取所有集合名称的列表并将它们缓存在某处。