Я использую Automapper. При этом я сопоставил объекты DTO с другим объектом.
Класс UserProperties.
public string DisplayName { get; set; }
public int Id { get; set; }
public int NotesCount {get;set;}
Класс PersonsDTO
public string UserName { get; set; }
public int UserId { get; set; }
public int NotesCount { get ; set; }
public int BooksCount { get; set; }
Класс людей
public UserProperties? UserDetails { get; set; }
public int NotesCount { get ; set; }
public int BooksCount { get; set; }
В профиле сопоставления
CreateMap<PersonsDTO, Persons>()
.ForPath(o => o.UserDetails.DisplayName, b => b.MapFrom(z => z.UserName))
.ForPath(o => o.UserDetails.Id, b => b.MapFrom(z => z.UserId))
.ReverseMap();
В моем случае UserDetails
в классе Persons
является типом, допускающим значение NULL. Если UserId
в классе PeronsDTO
равно 0
, значит, мне не нужно сопоставлять UserDetails. Он должен возвращать значение null для свойства UserDetails.
Как этого добиться?
Версия Automapper: 9.0.0