我们可以在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;
答案 0 :(得分:1)
您的代码已经回答了您的问题,但是您可以像这样优化它:
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;
答案 1 :(得分:0)
您可以使用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)