Für AutoMapper, habe ich folgendes implementiert, die funktioniert, aber hat Mapping-Code wiederholt:AutoMapper Basisklasse Mapping
cfg.CreateMap<RmsOelEntryUnlinkedPersonInputDto, AddNewOELEntryInvolvedEntitiesUnlinkedInvolvedPersonUnlinked>()
.ForMember(dest => dest.DateOfBirth, opts => opts.MapFrom(src => FormatDateType(src.DateOfBirth)))
.ForMember(dest => dest.EffectiveFromTime, opts => opts.MapFrom(src => FormatDateTimeType(src.EffectiveFromTime)))
.ForMember(dest => dest.EffectiveToTime, opts => opts.MapFrom(src => FormatDateTimeType(src.EffectiveToTime)));
cfg.CreateMap<RmsOelEntryUnlinkedAddressInputDto, AddNewOELEntryInvolvedEntitiesUnlinkedInvolvedAddressUnlinked>()
.ForMember(dest => dest.EffectiveFromTime, opts => opts.MapFrom(src => FormatDateTimeType(src.EffectiveFromTime)))
.ForMember(dest => dest.EffectiveToTime, opts => opts.MapFrom(src => FormatDateTimeType(src.EffectiveToTime)));
Beide RmsOelEntryUnlinkedPersonInputDto
und RmsOelEntryUnlinkedAddressInputDto
sind geerbt von RmsOelEntryInvolvedEntityBaseDto
und diese Basisklasse hat die Eigenschaften EffectiveFromTime
und EffectiveToTime
.
Ich möchte nicht die EffectiveFromTime
und EffectiveToTime
wie oben gesehen wiederholt abbilden müssen.
AddNewOELEntryInvolvedEntitiesUnlinkedInvolvedPersonUnlinked
und AddNewOELEntryInvolvedEntitiesUnlinkedInvolvedAddressUnlinked
sind jedoch automatisch generiert und haben keine Basisklasse. Daher sehe ich nicht, wie ich AutoMappers "Include" Mapping-Option verwenden kann.
Wie kann ich dies optimieren, um das wiederholte Mapping zu entfernen?
Dank. In Ihrer Erweiterungsmethode sehe ich, dass das Ziel als AddNewOELEntryInvolvedEntitiesUnlinkedInvolvedPersonUnlinked eingeschränkt ist, aber es muss auch AddNewOELEntryInvolvedEntitiesUnlinkedInvolvedAddressUnlinked zugeordnet werden. Wie würde das funktionieren? – Howard
Siehe aktualisierte Antwort :) Offene Frage, wenn generierte Klassen unvollständig sind? –
Natürlich würde dies sich auszahlen, wenn dieser Fall häufiger vorkommt als zwei Mappings. –