1

ソースの 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));

しかし、プロパティごとに設定したくありません。グローバルに設定できますか? または、これを達成する他の方法はありますか?

4

1 に答える 1

2

null 許容型ごとにそれ自体へのマップを作成すると、次のようになります。

Mapper.CreateMap<int?, int?>()
    .ConvertUsing(v => v);

修正として機能するようです。しかし、私はむしろ、すべての null 許容型を使用して完全なソリューションを用意し、それらを 1 つずつ指定したいと考えています。何かを見逃しやすい。

于 2013-02-05T03:09:58.770 に答える