dynamics-crm-2011 - 使用RetrieveMultipleRequest检索每个实体的相关实体

标签 dynamics-crm-2011 dynamics-crm

我正在尝试从CRM中检索实体列表,但是我想让每个实体都具有相关的实体。到目前为止,我有以下代码:

FilterExpression filterExpression = new FilterExpression();
ConditionExpression condition = new ConditionExpression(Constants.ModifiedOnAttribute, ConditionOperator.GreaterEqual, lastSync);
filterExpression.AddCondition(condition);

QueryExpression query = new QueryExpression()
{
     EntityName = entityName,
     ColumnSet = new ColumnSet(attributesMetadata.Select(att => att.Name).ToArray<string>()),
     Criteria = filterExpression,
     Distinct = false,
     NoLock = true
};

RetrieveMultipleRequest multipleRequest = new RetrieveMultipleRequest();
multipleRequest.Query = queryExpression;

RetrieveMultipleResponse response = (RetrieveMultipleResponse)proxy.Execute(multipleRequest);

在变量响应中,我可以看到EntityCollection属性,但是在内部,Related实体始终为空。

我想知道是否可以使用RetrieveMultipleRequest与相关实体检索给定实体的集合,而不是使用RetrieveRequest来逐一检索。

最佳答案

一种检索相关实体数据的方法-将LinkEntities添加到查询中。下面的示例将使您了解如何进行此操作:

LinkEntity linkEntity = new LinkEntity("email", "new_emails", "activityid", "new_relatedemail", JoinOperator.Inner);
linkEntity.Columns.AddColumn("versionnumber");
linkEntity.Columns.AddColumn("new_emailsid");
linkEntity.EntityAlias = "related";

query = new QueryExpression("email");
query.ColumnSet.AddColumn("activityid");
query.ColumnSet.AddColumn("versionnumber");
query.Criteria.AddCondition("modifiedon", ConditionOperator.NotNull);
query.LinkEntities.Add(linkEntity);

然后,您可以使用上面指定的EntityAlias访问相关实体的属性:

foreach (Entity entity in entities.Entities)
{
    if ((long)(entity["related.versionnumber"] as AliasedValue).Value > 0)
    {
        stop = false;
    }
}

关于dynamics-crm-2011 - 使用RetrieveMultipleRequest检索每个实体的相关实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710503/

相关文章:

c# - 在 CRM2011 插件中创建 OrganizationServiceProxy 以使用早期绑定(bind)

c# - 在 CRM Online 中动态使用 GetAttributeValue<T>

php - Microsoft Dynamics CRM 和 PHP/JSON

sql - 基于SQL的报表数据预过滤

wcf - 用于声明模式 xRM (Microsoft Dynamics CRM 2011) 的 Apache CXF 客户端?

dynamics-crm-2011 - 如何在本地 Dynamics CRM 2011 中恢复已删除的记录

dynamics-crm-2011 - 如何从选项集中获取值/文本?

c# - 带有开放泛型的 Ninject 上下文绑定(bind)

javascript - 如何根据N :N relationship 检索SOAP中的相关记录