I am working on the AspNetZero .NET Core MVC JQuery, version 6.3.1. I am copying over the code from my existing AspNetZero solution into the new version one entity at a time.
I realize this issue may not necessarily be an AspNetZero issue. However the code I'm using in this issue works perfectly in my Non-AspNetZero solution and is not working here in the AspNetZero solution.
I have an entity named "LegalEntity" in my application. I have one property in my EditDto for this entity that does not exist in the entity or table, name "NewNote".
When I run my app and goto the edit view for "LegalEntity" which uses the EditDto in its viewmodel, i get this AutoMapper error.
I then applied this codeconfiguration.CreateMap<EditLegalEntityDto, LegalEntity>().ForSourceMember(dto => dto.NewNote, opt => opt.Ignore());
into the CustomDtoMapper class.
Now when I run the application I get this auto-mapper error.
I can see similar ignore mappings in the CustomDtoMapper class that were added by the AspNetZero team. I am following the same coding.
Can someone tell me what I am missing or doing wrong here? Thanks! Exlnt
2 Answer(s)
-
0
I did some more digging into this issue and found a Stackoverflow thread that helped. I changed the mapping, as shown below. I reveresed the source and destination values and used ForMember instead. This resolved my error.
configuration.CreateMap<LegalEntity, EditLegalEntityDto> () .ForMember(dto => dto.NewNote, opt => opt.Ignore());
However, I would like to understand why the original code did not work? If anyone has any ideas, please do share.
-
0
Explained by @jbogard in AutoMapper/AutoMapper#1556#issuecomment-234586193:
ForSourceMember is only meant for reverse-mapping scenarios or for situations where you're validating the source members. AutoMapper uses the destination members as the target to map to by default. You should use ForMember and Ignore.