I'm trying to ignore a property from source type. I have defined mapping like this:
var map = AutoMapper.Mapper.CreateMap<Article, IArticle>();
map.ForSourceMember(s => s.DateCreated, opt => opt.Ignore());
map.ForSourceMember(s => s.DateUpdated, opt => opt.Ignore());
When I call Map function,
AutoMapper.Mapper.Map(article, articlePoco);
destination's properties gets updated anyway. I'm using the latest stable version downloaded from NuGet.
Any ideas why this isn't working ?
I have found similar question to this one but there is no answer attached. [question]:AutoMapper's Ignore() not working?
Change the mapping to use ForMember:
map.ForMember(s => s.DateCreated, opt => opt.Ignore());
map.ForMember(s => s.DateUpdated, opt => opt.Ignore());
If the property that you want to ignore only exists in the source object then you can you MemberList.Source
in combination with the option method DoNotValidate()
. See below:
CreateMap<IArticle, Article>(MemberList.Source)
map.ForSourceMember(src => src.DateCreated, opt=> opt.DoNotValidate());
map.ForSourceMember(src => src.DateUpdated, opt => opt.DoNotValidate());
This is perfect if you are using AssertConfigurationIsValid
and want to ignore validation of certain source properties.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With