Автоматическое сопоставление списка объектов с другим объектом в другом списке объектов, вложенное сопоставление

#c# #.net #asp.net-core #automapper #mapper

Вопрос:

сначала открытый класс {

 public List<ClassA> AList{ get; set; }
 

}

открытый класс ClassA {

 public string FirstName{ get; set; }

public string LastName{ get; set; }
 

}

открытый класс Второй {

 public List<ClassB> BList{ get; set; }
 

}

открытый класс ClassB {

 public ClassC Cobj { get; set; }

public string Email { get; set; }
 

}

открытый класс ClassC {

 public string FirstName{ get; set; }

public string LastName{ get; set; }
 

}

невозможно получить результаты для преобразования ClassA в ClassC при попытке сопоставления первого и второго

Ответ №1:

Я думаю, что обратное сопоставление и выравнивание могли бы помочь

 var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<First, Second>()
       .ForMember(dest => dest.BList, opt => opt.MapFrom(src => src.AList));
    cfg.CreateMap<ClassB, ClassA>()
       .ForMember(dest => dest.FirstName, opt => opt.MapFrom(src => src.Cobj.FirstName))
       .ForMember(dest => dest.LastName, opt => opt.MapFrom(src => src.Cobj.LastName))
       .ReverseMap();
});