AutoMapper: Ist Map <A,B> geben Sie <B>?
Mit Automapper erstelle ich eine einfache Karte:
Mapper.CreateMap<MyCustomerDTO, YourCustomerDTO>()
Brauche ich oft, um den anderen Weg gehen zu. Muss ich auch erstellen Sie das mapping in die andere Richtung, oder wird Automapper erschließen auf der Grundlage der oben-mapping?
Mapper.CreateMap<YourCustomerDTO, MyCustomerDTO>() //Needed?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. erstellen Sie zwei-Wege-mapping. Ein guter Helfer-Methode für zwei-Wege-mapping könnte :
dann verwenden Sie es wie diese :
ReverseMap
option.Dies ist ein Duplikat zu Brauche ich zum erstellen von automapper createmap in beide Richtungen?
Hinweis: die Antwort bezüglich
.ReverseMap()
hier.Beachten Sie, dass
.ReverseMap()
ist für die grundlegende Zuordnung. Wenn Sie müssen, verwenden Sie die Optionen (wie bestimmteForMember
mappings), müssen Sie erstellen eine benutzerdefinierte reverse-Karte.müssen Sie erstellen Sie eine zweite Zuordnung, wie gut. Ein einfacher test Versuch, Ihre app ohne zweiten mapping wird Ihnen ein runtime error
Ich habe die gleichen Problem bei der Arbeit mit AutoMapper, und @Behnam-Esmaili ist eine gute Antwort, aber es verbessert werden könnte.
Könnten Sie implementieren eine Erweiterung Methode für
IMapperConfigurationExpression
was tun würde, diese zwei-Wege-mapping und auch erwartet zwei optionale parameter (Action<IMappingExpression<T, Y>>
), die verwendet werden würde, wenn Sie versuchen, konfigurieren Sie die Zuordnungen für beide Arten.Die Umsetzung oben ist ein Weg der Verwirklichung, aber es kann sein design anders.