Список отображения в автомате - PullRequest
0 голосов
/ 07 мая 2018

Я новичок в autopper. У меня есть класс, который имеет коллекцию объектов. И мне нужен этот класс для сопоставления с другим объектом, который имеет другое имя. Мне нужно отобразить сотрудника на employeeDto. Оба класса имеют разные имена и разные имена. Могут ли они быть сопоставлены с использованием Autopper, если у них другое имя?

public class Employee
{
    public string Name { get; set; }
    public string Address { get; set; }
    public List<Job> Jobs { get; set; }
}
public class Job
{
    public string CompanyName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

public class EmployeeDto
{
    public string Fullname { get; set; }
    public string Location { get; set; }
    public List<WorkExperience> WorkExperience { get; set; }
}
public class WorkExperience
{
    public string NameOfCompany { get; set; }
    public DateTime DateBegin { get; set; }
    public DateTime DateEnd { get; set; }
}

1 Ответ

0 голосов
/ 07 мая 2018

Вы можете настроить сопоставление для обработки списка Jobs и списка WorkExperience вручную.См. Раздел проекции в документации AutoMapper

AutoMapper.Mapper.Initialize(cfg =>
{
    cfg.CreateMap<Employee, EmployeeDto>()
    .ForMember(dest => dest.Fullname, opt => opt.MapFrom(src => src.Name))
    .ForMember(dest => dest.Location, opt => opt.MapFrom(src => src.Address))
    .ForMember(dest => dest.WorkExperience, opt => opt.MapFrom(src => src.Jobs));

    cfg.CreateMap<Job, WorkExperience>()
    .ForMember(dest => dest.NameOfCompany, opt => opt.MapFrom(src => src.CompanyName))
    .ForMember(dest => dest.DateBegin, opt => opt.MapFrom(src => src.StartDate))
    .ForMember(dest => dest.DateEnd, opt => opt.MapFrom(src => src.EndDate));
});

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...