2016-08-17 4 views
-1

Я пытаюсь преобразовать из значения bool в decimal i automapper. Он отлично работает, если я не проверю нулевые значения. Но я хочу проверить нулевые значения, и если значение равно null, пусть значение будет null i destination else преобразуется в decimal.Below - это ode i tied, но я получаю ошибку ,autoapper преобразование из десятичного в bool, если не null

cfg.CreateMap<sourcemodel, destinatiomodel>()  
    .ForMember(dest => dest.WorkhoursPerWeek != null ? 
       Convert.ToDecimal(dest.WorkhoursPerWeek) : null, 
       opts => opts.MapFrom(src => src.cstu_WorkHoursPerWeek)); 
+0

Просто сделайте свой dest.WorkhoursPerWeek как Nullable или десятичным? – Fals

+0

Пожалуйста, покажите свойства, которые вы пытаетесь сопоставить. «Я хочу конвертировать из bool в десятичный», звучит очень странно. – krillgar

+0

krillagar, Не могли бы вы посмотреть на код – user2465036

ответ

0

Ваш код не имеет смысла (главным образом потому, что он недействителен). Если вам необходимо проверить свойство источника первым, я предложил бы использовать AfterMap()

cfg.CreateMap<sourcemodel, destinatiomodel>()  
    .AfterMap((src, dest) => 
    { 
     dest = dest.WorkhoursPerWeek != null 
     ? Convert.ToDecimal(dest.WorkhoursPerWeek) 
     : src.cstu_WorkHoursPerWeek 
    }); 

(Или это может не работать, а если нет, то используйте BeforeMap() для отображения до и Игнорировать() свойство).

+0

Я получаю сообщение об ошибке @Erik – user2465036

+0

Я очень рекомендую, когда вы общаетесь с другими техническими людьми (где бы то ни было не просто SO), что вы более подробно описываете проблему, с которой вы сталкиваетесь. Например, что я могу сделать с «Я получаю ошибку»? У меня нет исключения, ни кода; вы не представили мне какую-либо информацию, которая вам поможет. –

+0

Эрик, что пытался – user2465036