Карта AutoMapper, если она не нулевая, в противном случае пользовательское преобразование

Вот мой код:

Mapper.CreateMap<Foo, Foo2>()
  .ForMember(dest => dest.Bar, opt => opt.MapFrom(src => src.Bar == null ? new BarViewModel() : src.Bar))

По сути, «BarViewModel» имеет ctor без параметров, который устанавливает свойства в классе.

Итак, я пытаюсь сказать AutoMapper:

If the value is null, then use the ctor for the class. otherwise use the mapping you have in place

Вышеприведенное дает мне ошибку компилятора C #. И я предполагаю, что гипс тоже не сработает.

Так есть ли трюк AutoMapper для этого?

В худшем случае я мог бы удалить это сопоставление для этого свойства и просто сделать:

var mapped = Mapper.Map<Foo,Foo2>(src);
if (mapped.Bar == null) mapped.Bar = new BarViewModel();

Но это немного некрасиво.

Идеи?

30
задан RPM1984 20 July 2012 в 00:07
поделиться