Supponendo che la data è DateTime nullable:Automapper: complesso se else in ForMember
Mapper.CreateMap<SomeViewModels, SomeDTO>()
.ForMember(dest => dest.Date,
opt => opt.MapFrom(src =>
{
DateTime? finalDate = null;
if (src.HasDate == "N")
{
// so it should be null
}
else
{
endResult = DateTime.Parse(src.Date.ToString());
}
return finalDate;
}));
L'errore ho ottenuto è stato: "Errore 30 Un'espressione lambda con un corpo dichiarazione non può essere convertito in un albero di espressione."
Certo che sono pienamente consapevole che posso semplificare la query come ad esempio:
Mapper.CreateMap<SomeViewModels, SomeDTO>()
.ForMember(dest => dest.Date,
opt => opt.MapFrom(src => src.HasDate == "N" ? null : DateTime.Parse(src.Date.ToString())));
Ma cosa succede se insisto a mantenere la struttura del primo esempio perché ho più complicato se else che il secondo esempio non sarà in grado di soddisfare o almeno non molto leggibile?
Così ho bisogno di definire le altre proprietà di mapping nel convertitore anche se il resto sono semplici mappatura? –
@ Somma a breve - sì. ma puoi mapparlo con automapper all'interno del Converter ignorando questa proprietà e impostalo manualmente :) che tipo è la tua proprietà Date? – Backs
È un DateTime nullable, dimenticato di menzionarlo nella mia domanda. Puoi aggiungere quell'esempio (mappalo con automapper all'interno del Converter) nella tua risposta? Grazie. –