3

간단한 OData와 함께 Ms Dynamic Web API를 사용하고 있습니다. 링크 엔티티에 대한 새 레코드를 추가해야합니다.CRM은 엔터티 참조 속성의 직접 업데이트를 지원하지 않습니다. 대신 탐색 속성 사용

나는 탐색 속성을 사용,

CRM은 엔티티 참조의 특성을 직접 업데이트를 지원하지 않습니다 아래의 코드 싹둑를 사용 https://github.com/object/Simple.OData.Client/wiki/Adding-entries-with-links

 var newContactData = await _oDataClient 
      .For<Contacts>() 
       .Set(new 
       { 
        firstname = contactData.ContatDetails.firstname, 
        lastname = contactData.ContatDetails.lastname, 
        emailaddress1 = contactData.ContatDetails.emailaddress1 
       }) 
       .InsertEntryAsync(true); 

     var newContactLink = await _oDataClient.For<New_project_contactses>() 
       .Set(new 
       { 
        _new_contact_project_name_new_value = contactData.ContatDetailsLink._new_contact_project_name_new_value, 
        new_project_contactsid = new Guid("0eb46b24-21a2-e611-80eb-c4346bc5b2d4"), 
        new_contact_type = contactData.ContatDetailsLink.new_contact_type, 

       }) 
       .InsertEntryAsync(resultRequired: true); 

내가 예외 점점 오전에 설명서를 참조하고 대신

답변

2

나는 Dyn amc CRM 참조 엔터티 필드를 직접 업데이트 할 수 없습니다. 참조 엔티티 속성은 "_"으로 시작하는 것을 식별 할 수 있습니다.

3

음, 가능하지만 단일 탐색 속성을 업데이트하려면 특수한 "@ odata.bind"구문을 사용해야합니다.

{ 
    "name":"Sample Account", 
    "[email protected]":"/contacts(00000000-0000-0000-0000-000000000001)" 
} 

은 (는 측면에서 설명 https://msdn.microsoft.com/en-us/library/gg328090.aspx#Anchor_3를 참조하십시오 : 그것은 기존 primarycontactid을 참조하도록

예를 들어, 다음과 같은 몸으로 /api/data/v8.2/accounts 엔드 포인트에 패치 작업을 사용할 수있는 계정을 업데이트하려면 엔티티를 만들지 만 업데이트도 가능).