tutorial net mvc imapper framework example custom c# automapper

c# - net - Automapper: Ignorar a condición de



imapper c# (2)

La función Ignorar () es estrictamente para los miembros que nunca asigna, ya que estos miembros también se omiten en la validación de la configuración. Revisé un par de opciones, pero no parece que las cosas se conviertan en un solucionador de valores personalizado. En su lugar, veré cómo agregar una opción de configuración condicional Omitir, como:

Mapper.CreateMap<CarViewModel, Car>() .ForMember(dest => dest.Code, opt => opt.Condition(source => source.Id == 0))

¿Es posible ignorar la asignación de un miembro dependiendo del valor de una propiedad de origen?

Por ejemplo si tenemos:

public class Car { public int Id { get; set; } public string Code { get; set; } } public class CarViewModel { public int Id { get; set; } public string Code { get; set; } }

Estoy buscando algo como

Mapper.CreateMap<CarViewModel, Car>() .ForMember(dest => dest.Code, opt => opt.Ignore().If(source => source.Id == 0))

Hasta ahora, la única solución que tengo es usar dos modelos de vista diferentes y crear asignaciones diferentes para cada uno.


Me encontré con un problema similar, y aunque esto sobrescribirá el valor existente para dest.Code con null, podría ser útil como punto de partida:

AutoMapper.Mapper.CreateMap().ForMember(dest => dest.Code,config => config.MapFrom(source => source.Id != 0 ? null : source.Code));