34 votes

ResolveUsing manquant dans AutoMapper 8.0

Avant AutoMapper 8.0, j'ai utilisé ce code:

 CreateMap<ApplicationRole, RoleViewModel>()
.ForMember(d => d.Permissions, map => map.MapFrom(s => s.Claims))
.ForMember(d => d.UsersCount, map => map.ResolveUsing(s => s.Users?.Count ?? 0))
                    .ReverseMap();
 

La documentation indique que vous devez changer ResolveUsing pour MapFrom, mais j'ai une erreur "No propagation Null"

 .ForMember(d => d.UsersCount, map => map.MapFrom(s => s.Users?.Count ?? 0))
 

Comment dois-je le résoudre?

57voto

Paw Baltzersen Points 822

Remplacez ResolveUsing par MapFrom et ajoutez un autre paramètre d'entrée au lambda (TDestination).

 .ForMember(d => d.UsersCount, map => map.MapFrom((s,d) => s.Users?.Count ?? 0))
 

1voto

Ossama Zakaria Points 31

Vous n'avez pas besoin d'utiliser cette expression, vous pouvez "Users.Count" et il retournera 0 si la liste est vide.

0voto

user1811700 Points 21

Vous pouvez simplement supprimer ResolveUsing (ou MapFrom) et il sera mappé par la convention Users.Count => UsersCount.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X