C# Automaper - zagniżdżone mapowanie listy

0

Witam!
Mam takie przykładowe klasy

public class klasaA
{
    public string nazwa { get; set; }
    public List<klasaB> listaKlasaB = new List<klasaB>();
}

public class klasaB
{
    public string nazwaB { get; set; }
    public List<klasaC> listaKlasaC = new List<klasaC>();
}

public class klasaC
{
    public string nazwaC { get; set; }
}
public class klasaA_DTO
{
    public string nazwa { get; set; }
    public List<klasaB> listaKlasaB = new List<klasaB>();
}

W jaki sposób przy użyciu automapera zmapować klasę A na klasaA_DTO zachowując całą zawartość list(listaKlasaB i listaKlasaC)?
Jeśli zrobię to w ten sposób:

cfg.CreateMap<klasaA, klasaA_DTO>();

to wtedy nie mapuje zawartości listy - listaKlasaC

0

co to jest te cfg ?

0

Konfiguracja automapera

public static class AutoMapperConfig
    {
        public static IMapper Initialize()
             => new MapperConfiguration(cfg =>
             {

                 cfg.CreateMap<klasaA, klasaA_DTO>();


             })
            .CreateMapper();
    }
0

A czemu u Ciebie te listy to zainicjalizowane pola, a nie właściwości?

1

Kod który wstawiłeś jak najbardziej robi to co chcesz.

IMapper m = AutoMapperConfig.Initialize();

klasaA a = new klasaA() { listaKlasaB = new List<klasaB>() { new klasaB() { listaKlasaC = new List<klasaC>() { new klasaC() { nazwaC = "C" } }  } } };

var dto= m.Map<klasaA_DTO>(a);
0

Dzięki za pomoc, faktycznie mapowanie działa dobrze, problem był gdzie indziej :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1