2017-07-21 2 views
0
public class ObjectA 
{ 
    string abc {get; set;} 
} 

public class ObjectB 
{ 
    string abc {get; set;} 
    string bla {get; set;} 
} 

public class A 
{ 
    public string x { get; set; } 
    public ICollection<ObjectA> CollectionA {get; set;} 
} 

public class B 
{ 
    public string x { get; set; } 

    public ICollection<Object B> CollectionB { get; set; } 
} 



cfg.CreateMap<A, B>() 
    .ForMember(dest => dest.CollectionB, opt => opt.MapFrom(src => src.CollectionA)); 

Hallo, ich möchte die Sammlung behalten, aber bla String innerhalb ignorieren, wie kann ich das erreichen?Automapper ignorieren nur ein Sammelattribut

Ich stelle mir vor, ich muss etwas tun wie: .ForSourceMember (x => x.CollectionB, opt => opt.Ignore());

Gesucht in den AutoCAD-Dokumenten, konnte aber keinen Weg finden, dies mit Sammlungen zu tun. Kann mir jemand dabei helfen? Danke!

Antwort

0

Es stellt sich heraus, dass ich das Auflistungsobjektattribut nicht zuordnen muss. Nur muss meine vorherige Zuordnung beibehalten, wie folgt aus:

cfg.CreateMap<A, B>() 
    .ForMember(dest => dest.CollectionB, opt => opt.MapFrom(src => src.CollectionA)) 

und Objekte Beziehung, wie folgt aus:

cfg.CreateMap<ObjectB, ObjectA>() 
    .ForSourceMember(src => src.bla, dest => dest.Ignore()); 

Auf diese Weise AutoMapper die Sammlung löst! Hoffe das hilft jemandem!

0

Fügen Sie ein Mapping von ObjectA zu ObjectB hinzu, und Autoadapter wird das verwenden.

AutoMapper braucht auch keine expliziten Zuordnungen IEnumberable<ObjectA>-IEnumberable<ObjectB> - nur der erste ObjectA und ObjectB - es wird den Rest ableiten (natürlich werden Sie immer noch Ihre A-B Mapping in dem obigen Beispiel jedoch brauchen, weil sie ihre eigenen haben Eigenschaften).

+0

Im gegenüber: CollectionB ---> AutoMapper.AutoMapperMappingException: Fehlende Typ-Map-Konfiguration oder nicht unterstützte Zuordnung. – DanW

Verwandte Themen