2

在我的 CRM 数据库中,我有两个实体组 A 和 B,它们通过 m:n 关系链接。实体 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 和 to 属性。

但是,当我创建多对多关系时,我没有指定任何属性名称,它只是实体之间的。我究竟做错了什么?

另外,我的RetrieveMultipleRequest班级没有财产ReturnDynamicEntities

4

2 回答 2

1

您需要指定 LinkFromAttributeName 和 LinkToAttributeName。这些将是包含匹配键值的 from 和 to 实体的属性。

于 2012-07-13T13:01:58.510 回答
0

你可以在这篇博文中找到答案。其中描述了两种方法:
- RetrieveMultipleRequestLinkEntity类;
-获取

于 2012-07-13T08:42:33.453 回答