ソースの null 許容型プロパティは無視され、宛先にコピーされないようです。
次のクラスを検討してください。
public class Source
{
public int? Test { get; set; }
}
public class Destination
{
public int? Test { get; set; }
}
マッピング:
Mapper.CreateMap<Source, Destination>();
var source = new Source() { Test = 1 };
var destination = new Destination();
Mapper.Map<Source, Destination>(source, destination);
Assert.AreEqual(source.Test, destination.Test); //true
source.Test = null;
Mapper.Map<Source, Destination>(source, destination);
Assert.AreEqual(source.Test, destination.Test); //false (null, 1)
私が使用したときに機能しました:
Mapper.CreateMap<Source, Destination>()
.ForMember(m => m.Test, o => o.ResolveUsing(m => m.Test));
しかし、プロパティごとに設定したくありません。グローバルに設定できますか? または、これを達成する他の方法はありますか?