在我的CRM数据库中,我有两个实体组,A和B,由m:n-relationship链接。实体A的许多实例都链接到实体B的多个实例。对于特定实体,假设实体A的实例,我如何获得实体B的所有链接实例?
var service = new OrganizationService(_connection);
var retrieveRequest = new RetrieveMultipleRequest();
retrieveRequest.Query = new QueryExpression
{
EntityName = "new_A",
ColumnSet = new ColumnSet(true)
};
var crmReponse = (RetrieveMultipleResponse)service.Execute(retrieveRequest);
在调试模式下查看crmResponse时,我看到实体A的所有实例,但我在RelatedInstances属性中看不到任何内容。我做错了什么?
编辑:在得到第一个答案后,我按如下方式修改了我的代码:
var linkEntities = new LinkEntity {
LinkFromEntityName = "new_A",
LinkToEntityName = "new_B"
};
var retrieveRequest = new RetrieveMultipleRequest();
var query = new QueryExpression
{
EntityName = "new_A",
ColumnSet = new ColumnSet(true)
};
query.LinkEntities.Add(linkEntities);
retrieveRequest.Query = query;
var crmReponse = (RetrieveMultipleResponse)service.Execute(retrieveRequest);
现在我收到了错误:
之间不存在系统多对多关系 new_customer_system_machine_type和 new_customer_system_machine_check。如果试图链接通过 自定义多对多关系确保您提供from和 属性。
但是,当我创建多对多关系时,我没有指定任何属性名称,它只是在实体之间。我做错了什么?
此外,我的RetrieveMultipleRequest
课程没有属性ReturnDynamicEntities
答案 0 :(得分:1)
您需要指定LinkFromAttributeName和LinkToAttributeName。这些将是包含匹配键值的from和to实体的属性。
答案 1 :(得分:0)
您可以在此blog post找到答案。有两种方式:
- RetrieveMultipleRequest LinkEntity级{/ 3}}
- Fetch