Я создаю сопоставление Automapper между моим AccountEditViewModel
(View Model, используемым для редактирования пользователя) и моим User
(модель данных, представляющая пользователя в базе данных). Если поле пароля заполнено, я хочу зашифровать этот пароль и сохранить его, однако, если он равен нулю, я хочу сохранить старый пароль. Я пробовал код ниже, но это неправильно, model.Ignore() не возвращает строковое значение. Каков наилучший способ обойти это. Могу ли я выполнить это с помощью метода ForMember()
или мне нужен пользовательский резольвер?C# Automapper Игнорировать свойство Когда Null
Mapper.CreateMap<AccountEditViewModel, User>()
.ForMember(model => model.Password, model => model.MapFrom(user => user.Password != null ? EncryptPassword(user.Password) : model.Ignore()));
Вы должны добавить ForMember (модель => model.Password, модель => model.Ignore()) до AfterMap() до вызова картографа больше не обработка отображения –
Это не работает, если вы используете выражения LinQ для automapper. – AgentFire