Действительно ли возможно проигнорировать отображение участника в зависимости от значения исходного свойства?
Например, если мы имеем:
public class Car
{
public int Id { get; set; }
public string Code { get; set; }
}
public class CarViewModel
{
public int Id { get; set; }
public string Code { get; set; }
}
Я ищу что-то как
Mapper.CreateMap<CarViewModel, Car>()
.ForMember(dest => dest.Code,
opt => opt.Ignore().If(source => source.Id == 0))
До сих пор единственным решением, которое я имею, является также использование две модели другого представления, и создайте различные отображения для каждого.
Функция Ignore() предназначена только для членов, которые вы никогда не отображаете, поскольку эти члены также пропускаются при проверке конфигурации. Я проверил несколько вариантов, но не похоже, что такие вещи, как пользовательский преобразователь значений, помогут.
Используйте функцию Condition() для отображения члена, когда условие истинно:
Mapper.CreateMap<CarViewModel, Car>()
.ForMember(dest => dest.Code, opt => opt.Condition(source => source.Id != 0))