2017-08-29 6 views
1

Wie kann ich eine innere Eigenschaft eines verschachtelten Objekts mit Automapper festlegen? Shareholder hat innere Eigenschaft der Klasse Kontakte. Die Eigenschaft PhysicalOrPostalAddresses muss Individual.Address oder Corporate.Addresses zugeordnet werden.Automapper Einstellung innere Objekteigenschaft

var holderMap = CreateMap<Shareholder, Trustee>(MemberList.None); 
     holderMap 
      .ForMember(dest => dest.Individual, opt => 
     { 
      opt.Condition(src => src.Person != null); 
      opt.MapFrom(src => src.Person); 
     }) 
     .ForMember(dest => dest.Corporate, opt => 
     { 
      opt.Condition(src => src.Organisation != null); 
      opt.MapFrom(src => src.Organisation); 
     }) 
     // this code doesn't work 
     .ForMember(dest => dest.Corporate.Addresses, o => 
     { 
      o.Condition(s => s.Organisation != null); 
      o.MapFrom(s => s.Contacts.PhysicalOrPostalAddresses); 
     }) 
     .ForMember(dest => dest.Individual.Addresses, o => 
     { 
      o.Condition(s => s.Person != null); 
      o.MapFrom(s => s.Contacts.PhysicalOrPostalAddresses); 
     }) 
    .ReverseMap(); 

Antwort

0

Sie benötigen ForPath anstelle von ForMember.

+0

danke! Es klappt. Wie definiere ich die Bedingung wie für ForMember 'opt.Condition (src => src.Organisation! = Null);' – Ma3yTa

+0

Das wird momentan nicht unterstützt. Sie können es auf GitHub anfordern. –