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

标签 c# visual-studio dynamics-crm-2011 dynamics-crm dynamics-crm-2016

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

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

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

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

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

最佳答案

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

http://[crmurl]/api/data/v8.2/EntityDefinitions?$select=EntitySetName,LogicalName&$filter=LogicalName eq 'account'

结果如下:

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

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

关于c# - 如何在 CRM 2016 中检索实体名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43265140/

相关文章:

c# - 将 clr 更新到 4.7 后应用程序崩溃

c# - MEF 是否需要 .NET 4?

visual-studio - 如何扩展 CodeLens

dynamics-crm - CRM2011 工作流 : What happens if the field which is used in the condition of the workflow is updated after the workflow has started?

c# - 条件属性 c#

C# - 使用 lambda 表达式或 LINQ 填充列表

dynamics-crm-2011 - 客户关系管理 2011 : Special permissions missing for Users

entity - 微软动态客户关系管理。获取当前记录共享的用户

c# - 设置文本框值

visual-studio - Visual Studio 2017 锁定文件