如何使用Web服务在CRM 2013中创建多对多关系

时间:2014-06-13 03:39:29

标签: c# rest odata dynamics-crm-2013

我在CRM 2013中的帐户和联系人之间有多对多的自定义关系company_a_c。我现在正尝试通过oData(REST)Web服务添加关系,但遇到了一些困难。我为oData Web服务创建了一个标准的c#代理类。

尝试1(创建关系对象):

var crmRelationship = new company_a_c();
crmRelationship.accountid = account.AccountId;
crmRelationship.contactid = contact.ContactId;
crmService.AddTocompany_a_cSet(crmRelationship);
crmService.SaveChanges();

结果:错误"'创建' method不支持CRM 2013&company; a_c'

类型的实体

尝试2(通过对象创建):

account.company_A_C.Add(contact);
crmService.UpdateObject(account);
crmService.SaveChanges();

结果:未抛出任何错误,但未创建关系

我确定我以错误的方式解决这个问题(oData的新手),所以对于设置这些类型关系的正确方法的任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试以下方法:

EntityReferenceCollection entityCollection = new EntityReferenceCollection();
entityCollection.Add(new EntityReference(Contact.EntityLogicalName, contact.ContactId));
Relationship crmRelationship = new Relationship(company_a_c.EntityLogicalName);
crmService.Associate(Account.EntityLogicalName, account.AccountId, crmRelationship, entityCollection);

答案 1 :(得分:0)

看起来SetLink是错误的,但AddLink是我应该追求的。

crmService.AddLink(account, "company_a_c", contact);
crmService.SaveChanges();