Dynamics crm crm 2016是否按类型代码获取实体逻辑名称?
我有实体的Guid和类型代码,如何按类型代码检索没有逻辑名称的实体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
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
来解析查询字符串。