Как отобразить внешний и внутренний источник на один и тот же объект - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть такая структура:

public class UserEntity
{
    public long Id { get; set; }
    public string Name { get; set; }
    public string UserName { get; set; }
    public ComplexObject TimeZone { get; set; }
}

public class UserQueryResult
{
    public UserEntity User { get; set; }
    public ObjectId AccountId { get; set; }
}

public class UserDto
{
    public long Id { get; set; }
    public string Name { get; set; }
    public string UserName { get; set; }
    public string TimeZoneId { get; set; }
    public string AccountId { get; set; }
}

У меня есть UserEntity для сопоставления UserDto, как это:

CreateMap<UserEntity, UserDto>()
    .ForMember(dest => dest.TimeZoneId, opt => opt.ResolveUsing<UserTimeZoneResolver>())
    .ForMember(dest => dest.AccountId, opt => opt.Ignore());

Как видите, существует преобразователь из UserEntity в UserDto. Теперь, если я хочу сопоставить UserQueryResult с UserDto, как я могу использовать вышеупомянутый маппер без необходимости вручную сопоставлять все свойства?

CreateMap<UserQueryResult, UserDto>()
    .ForMember(dest => dest.AccountId, opt => opt.MapFrom(src => src.AccountId.ToString()))
    .// use the UserEntity to UserDto map?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...