我在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的新手),所以对于设置这些类型关系的正确方法的任何帮助都将不胜感激。
答案 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();