C#CRM m:n关系

时间:2012-07-12 09:43:59

标签: c# many-to-many dynamics-crm crm

在我的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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您可以在此blog post找到答案。有两种方式:
   - RetrieveMultipleRequest LinkEntity级{/ 3}}    - Fetch