J'utilise Mapper.DynamicMap()
dans une méthode générique et je souhaiterais, sans utiliser .CreateMap()
, ignorer certaines valeurs source null. Est-ce seulement possible?Utilisation de DynamicMap() et ignorant la valeur de la source nulle
20
A
Répondre
32
Si vous voulez que toutes les propriétés de la source avec des valeurs nulles à vous pouvez utiliser ignoré:
Mapper.CreateMap<SourceType, DestinationType>()
.ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));
Sinon, vous pouvez faire quelque chose de similaire pour chaque membre. Cela deviendra fastidieux s'il y a un grand nombre de propriétés.
+3
N'importe quelle façon de le faire avec DynamicMap plutôt que CreateMap? – JustMaier
0
Je l'ai résolu avec DataMember propriété dans le type de destination [DataMember(EmitDefaultValue = false)]
ajouter ceci dans la destination DTO
Voulez-vous dire si vous aviez une liste d'objets « source » et certains étaient nulles, vous ne voulez pas une liste des objets "destination" mappés avec des valeurs nulles - vous voulez simplement que les objets source non-null soient mappés? – PatrickSteele
Exactement. Par exemple: si j'ai un objet Source avec Name et SSN, et un objet Destination avec la même propriété, si l'une de ces propriétés est null dans l'objet Source je ne veux pas qu'ils soient mappés dans l'objet Destination. Pourquoi vous pouvez demander? Aucune propriété qui est déjà définie dans l'objet Destination ne doit être remplacée par des valeurs null. – JoseMarmolejos
utilisez ce http://valueinjecter.codeplex.com/ si vous aimez le mappage basé sur la dynamique/la convention – Omu