これが私のコードです:
Mapper.CreateMap<Foo, Foo2>()
.ForMember(dest => dest.Bar, opt => opt.MapFrom(src => src.Bar == null ? new BarViewModel() : src.Bar))
基本的に、「BarViewModel」には、クラスにプロパティを設定するパラメーターなしの ctor があります。
だから私はAutoMapperに言いたい:
値が null の場合は、クラスに ctor を使用します。それ以外の場合は、適切なマッピングを使用してください
上記は私にC#コンパイラエラーを与えています。そして、キャストもうまくいかないと思います。
これを行うための AutoMapper トリックはありますか?
最悪の場合、そのプロパティのマッピングを削除して、次のことを行うだけです。
var mapped = Mapper.Map<Foo,Foo2>(src);
if (mapped.Bar == null) mapped.Bar = new BarViewModel();
しかし、それは少し醜いです。
アイデア?