Как создать отношение «многие ко многим» в CRM 2013 с помощью веб-служб

У меня есть настраиваемые отношения «многие ко многим» company_a_c между учетными записями и контактами в CRM 2013. Сейчас я пытаюсь добавить отношения через веб-службы oData (REST), но столкнулся с некоторыми трудностями. Я создал стандартный прокси-класс С# для веб-служб oData.

Попытка 1 (создание объекта отношения):

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

Результат: Ошибка "Метод "Создать" не поддерживает сущности типа CRM 2013 "company_a_c"

Попытка 2 (создать через объекты):

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

Результат: ошибка не выдается, но связь не создается

Я уверен, что делаю это неправильно (новичок в oData), поэтому любая помощь в правильном способе настройки этих типов отношений будет оценена по достоинству.


person ChrisHDog    schedule 13.06.2014    source источник


Ответы (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);
person Oliver Rodrigues    schedule 13.06.2014
comment
Кажется, у меня нет EntityRefenceCollection в качестве типа (просматривал CrmServiceReference), а Account, Contact и т. д. ... не имеют .EntityLogicalName в качестве свойства. Я использую сгенерированные прокси-классы oData REST. - person ChrisHDog; 16.06.2014

Похоже, что SetLink был неправильным, но я должен был искать AddLink.

crmService.AddLink(account, "company_a_c", contact);
crmService.SaveChanges();
person ChrisHDog    schedule 16.06.2014
comment
Не уверен, почему это было отмечено как правильный ответ. Вы не можете добавлять ссылки «многие ко многим» с помощью AddLink. - person Kye; 24.09.2014