2012-07-12 70 views
2

在我的CRM数据库中,我有两个实体组A和B,它们通过m:n关系链接。有多个实体A的实例,每个实例都链接到实体B的多个实例。对于特定实体,让我们假设实体A的一个实例,我如何获得实体B的所有链接实例?C#CRM m:n关系

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的所有实例,但在“属性”的相关属性中看不到任何内容。我究竟做错了什么?

编辑:获得第一个回答后,我适应我的代码如下:

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

这是CRM 4还是2011? – Daryl 2012-07-13 03:38:17

+0

CRM 4,至少这是SDK的版本。 – arik 2012-07-13 07:25:30

回答

1

您需要指定LinkFromAttributeName和LinkToAttributeName。这些将成为来自和来自包含匹配键值的实体的属性。

+0

但是,多对多关系并没有为这两个实体生成任何密钥。此外,当我指定一个构成的属性名称时,它会引发错误,因为该属性名称不存在。 – arik 2012-07-13 13:17:59

相关问题