簡體   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