Quelle est la meilleure façon de cartographier des objets intérieurs avec Automapper 2.0
3 Réponses :
J'ai fini par créer mes propres résolveurs de valeur pour toutes les sous-observations de MainObject code> qui proviennent de
dtoObject code>.
Mapper.CreateMap<DTOObject, SubObject>();
Mapper.CreateMap<DTOObject, MainObject>()
.ForMember(dest => dest.SubPart, opt => opt.ResolveUsing<PartResolver<SubObject>>());
Pour moi, il était possible d'utiliser uniquement MapFrom (sans résoudre ce qui vous donne une chance d'utiliser ce mappage avec des extensions iquérissables). Donc, vous obtiendrez ce qui suit dans la configuration automapper:
Mapper.CreateMap<DTOObject, SubObject>() .ForMember(dest => dest.SubPropText, opt => opt.MapFrom(x => x.BottomText)) .ForMember(dest => dest.SubPropFont, opt => opt.MapFrom(x => x.BottomFont)); Mapper.CreateMap<DTOObject, MainObject>() .ForMember(dest => dest.SubPart, opt => opt.MapFrom(x => x));
Résolatrice fort> n'est pas disponible avec la dernière version de FadifPPER. Donc, seule l'option restante est d'utiliser
Avez-vous le contrôle de la conception du DTOOBJECT?
Oui, et non ceci est une ancienne base de données à usage intensif.
Dans quelle direction essayez-vous d'aller, d'un objet DTO à un objet principal ou d'un objet principal à l'objet DTO?
Probablement meilleur à utiliser
mapper.createmap (). Former (d => d.topobject, mc => mc.mapfrom (S => Nouveau sous-box () {SUBPROPTEXT = S.TOPTEXT, SUBPropFont = s.topfont})); code>
Notez également, dans votre CustomResolver, vous ne devez pas appeler mapper.map (), vous devez créer la sous-observation à l'aide des propriétés de la source et renvoyez cela.
Pourquoi ne pas appeler une sous-mappage qui prend l'objet de la même source et renvoie le sous-boje dont j'ai besoin?
Laissez-nous Continuer cette discussion en chat