Dynamics crm crm 2016是否按类型代码获取实体逻辑名称?

Dynamics crm crm 2016是否按类型代码获取实体逻辑名称?,dynamics-crm,dynamics-crm-365,Dynamics Crm,Dynamics Crm 365,我有实体的Guid和类型代码,如何按类型代码检索没有逻辑名称的实体 public void GetEntityReferenceByDynamicUrl(string dynamicUrl) { Uri entityUri = new Uri(dynamicUrl); var parameter = HttpUtility.ParseQueryString(entityUri.Query); if (parameter.AllKeys.C

我有实体的Guid和类型代码,如何按类型代码检索没有逻辑名称的实体

public void GetEntityReferenceByDynamicUrl(string dynamicUrl)
    {
        Uri entityUri = new Uri(dynamicUrl);
        var parameter = HttpUtility.ParseQueryString(entityUri.Query);

        if (parameter.AllKeys.Contains("id") && parameter.AllKeys.Contains("etc"))
        {
            var guid = new Guid(parameter.Get("id"));
           var  etc = parameter.Get("etc");

        }
    }

看起来您正在使用
C
,因此可以通过元数据调用来实现这一点

// get your ETC as an Integer
var ETC = (int)parameter.Get("etc");
var entityLogicalName = "";

// Query setup
// Columns: "LogicalName"
// Criteria: "ObjectTypeCode eq ETC"
var metaQuery = new EntityQueryExpression
{
    Properties = new MetadataPropertiesExpression
    {
        AllProperties = false,
        PropertyNames = { "LogicalName" }
    },
    Criteria = new MetadataFilterExpression
    {
        FilterOperator = LogicalOperator.And,
        Conditions = { new MetadataConditionExpression("ObjectTypeCode", MetadataConditionOperator.Equals, ETC) }
    }
};

var response = (RetrieveMetadataChangesResponse)XrmService.Execute(new RetrieveMetadataChangesRequest{ Query = metaQuery });
if (response.EntityMetadata.Count == 1)
{
    entityLogicalName = response.EntityMetadata.First().LogicalName;
}
else
{
    // 0 or multiple results. Handle appropriately
}

希望这有帮助

为什么要这样做?这段代码运行的是什么内容?如果您在沙箱环境中,我不确定是否可以使用
HttpUtility
来解析查询字符串。