ソース オブジェクトの整数値をDateTime
プロパティにマップしようとしているシナリオがあります。当然、それはできません。しかし、私がやりたいことは、ソースの整数の日数をDateTime
宛先プロパティのプロパティ値に追加することです。
これまでのところ、このシナリオを説明する解決策を見つけることができませんでした。
誰もそれを行う方法を知っていますか?
疑似コードの例:
Mapper.CreateMap<EditAdView, Ad>()
.ForMember(dest => dest.ExpirationDate, opt => opt.MapFrom(src => dest.ExpirationDate.AddDays(src.ExtendedDurationInWeeks * 7));
上記の例は機能しませんが、私がやりたいことを示しています。つまり、宛先プロパティ オブジェクトの既存の値に日数を追加します。
覚えておいてください:dest.ExpirationDate
プロパティには既に値が入力されているため、ソース オブジェクトから更新する必要があります。
前もって感謝します。
解決策:(詳細については、以下の回答を参照してください)
//in the mapping configuration
Mapper.CreateMap<EditAdView, Ad>()
.ForMember(dest => dest.ExpirationDate, opt => opt.Ignore())
.AfterMap((src, dest) => dest.ExpirationDate = dest.ExpirationDate.AddDays(src.ExtendedDuretionInWeeks * 7));
//in the controller
existingAd = Mapper.Map(view, existingAd);