Ваш код уже отвечает на ваш вопрос, но вы можете оптимизировать его следующим образом:
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;