Search code examples
dynamics-crmmicrosoft-dynamics

How can I get the entity attributes metadata list?


Dynamics 365 v8.2.2.

Why attributesMetadata is null? How can I get the entity attributes metadata list?

{
    var req = new RetrieveEntityRequest {
        LogicalName = "opportunity",
        RetrieveAsIfPublished = true,
    };

    var resp = srv.Execute(req) as RetrieveEntityResponse;
    var entityMetadata = resp.EntityMetadata;
    var attributesMetadata = entityMetadata.Attributes; // null
}

Solution

  • You need to set EntityFilters in request like:

    EntityFilters = EntityFilters.All
    

    Or

    EntityFilters = EntityFilters.Attributes
    

    The complete snippet as follows:

    RetrieveEntityRequest retrieveEntityRequest = new RetrieveEntityRequest
    {
        EntityFilters = EntityFilters.Attributes,
        LogicalName = "opportunity"
    };
    RetrieveEntityResponse retrieveOpptyEntityResponse(RetrieveEntityResponse)service.Execute(retrieveEntityRequest);
    EntityMetadata opptyEntity = retrieveOpptyEntityResponse.EntityMetadata;
    

    By default, EntityFilters.Default only entity information will be retrieved, that’s why you have empty attribute list.

    Read more