1

AutoMapper를 사용하여 매핑하려고합니다.
소스 객체는 C#을 개체에게 있습니다AutoMapper는 Microsoft Dynamics CRM의 조회 필드에 개체를 매핑합니다.

public class Source 
    { 
     public string comment { get; set; } 
     public string Subject { get; set; } 
     public Account Account{ get; set; }   
    } 

public class Account 
     { 
      public string FirstName{ get; set; } 
      public string LastName{ get; set; } 
     } 

내 목적지 의견, 주제 등의 필드가있는 CRM 엔티티 이름 crm_destination하지만, 그것은 또한 유형 계정조회 필드 계정이 있습니다.

하지만 LookUp 필드를 매핑하는 방법을 모르겠습니다. 다음

유형 불일치 오류를 던지고 내 Automapper

AutoMapper.Mapper.CreateMap<Source, Destinaetion>() 
       .ForMember(dest => dest.comment, opt => opt.MapFrom(src => src.comment)) 
       .ForMember(dest => dest.account, opt => opt.MapFrom(src => src.account)); 

.ForMember (이명 령 => dest.account, 옵트 => opt.MapFrom (SRC => src.account))입니다.

기본적으로 내 문제는 CRM 엔터티가 대상인 LookUp 필드를 매핑하는 방법을 모른다.

답변

1

조회는 CRM에 EntityReferences로 저장됩니다. 따라서 계정을 EntityReference로 변환해야합니다.

필자는 Automapper를 한번도 사용하지 않았지만 Nicknow가 제안하는 것은 어떨까요? 엔티티에서 ToEntityReference() 메서드를 호출하기 만하면됩니다.

+0

을하고있다하지만 u는 내가에해야 할 어떤 변화 알려 주시기 바랍니다 수 있습니다 코드 (자동 완성 장치) – user2739679

+0

개체를 EntityReference로 변환하는 방법 ?? – user2739679

1

AutoMapper에서 custom resolver을 사용해야합니다. 사용자 정의 리졸버에서 Account 개체와 일치하는 account 레코드의 ID를 가져오고이 개체에 대한 EntityReference를 반환하도록 CRM에 쿼리해야합니다.

-2

해결했습니다. 조회는 관계를 만듭니다. 내 lookp는 관계 이름 cxrm_account_cxrm_source_account
그래서 대신 .ForMember (이명 령 => dest.account, 옵트 => opt.MapFrom (SRC => src.account))를
내가

했다 생성 .ForMember (이명 령 => dest.cxrm_account_cxrm_source_account, 옵트 => opt.MapFrom (SRC => src.Account))

지금은

+0

Dynamics CRM의 'AccountID'는 어떻게 구합니까? 귀하의'Account' 객체에는'Guid'가 없지만'Guid'가 필요합니다. 위의 변경 사항이 질문의 코드와 일치하지 않으므로 여기에서 수정해야합니다. – Nicknow

+0

계정 ID를 가져올 필요가 없습니다. 새 GUID를 사용하여 새 레코드 (계정)를 생성합니다. 레코드가 존재하는지 여부를 확인해야하는 경우에만 GUID를 가져와야합니다. – user2739679

+0

나는 왜 대답을 -1로 주 었는지 모르지만 위의 해결책은 나를 위해 일하고있다. – user2739679