繁体   English   中英

Dynamics API返回实体字段和字段元数据

[英]Dynamics API returning entity fields and field metadata

我们可以在Dynamics API中获取实体元数据,它会返回实体中的所有字段。 我想知道是否可以同时获取字段的元数据?

var request = new RetrieveEntityRequest
            {
                EntityFilters = EntityFilters.All,
                LogicalName = entityName,
                RetrieveAsIfPublished = true,


            };
            var response = (RetrieveEntityResponse)_organisationService.Execute(request);

            return response != null ? response.EntityMetadata : null;

您的代码已经回答了您的问题,但是您可以像这样进行优化:

    private EntityMetadata GetEntityMetadata(string entityName, EntityFilters entityFilters, bool retrieveAsIfPublished = false)
    {
        var request = new RetrieveEntityRequest
        {
            EntityFilters = entityFilters,
            LogicalName = entityName,
            RetrieveAsIfPublished = retrieveAsIfPublished,
        };

        var response = (RetrieveEntityResponse)_service.Execute(request);

        return response?.EntityMetadata;
    }

如果只需要实体和属性元数据,则可以通过以下方式调用先前的方法:

        var entityMetadata = GetEntityMetadata("[entityname]", EntityFilters.Attributes | EntityFilters.Entity);
        var attributeMetadata = entityMetadata?.Attributes;

使用WebAPI可以做到

[organization url]/api/data/v8.2/EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName%20eq%20%27Account%27

这为您提供了CRM实例中帐户记录的元数据ID。 现在,使用该值创建另一个API调用,并为此获取特定的属性。 这是下一个API调用:

[organization url]/api/data/v8.2/EntityDefinitions(GUID)?$select=LogicalName&$expand=Attributes($select=LogicalName)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM