C# Automaper - zagniżdżone mapowanie listy

Odpowiedz Nowy wątek
2018-05-13 21:08

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

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

Pozostało 580 znaków

Zimny Kot
2018-05-13 21:33
Zimny Kot
0

co to jest te cfg ?

Pozostało 580 znaków

2018-05-13 22:12

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

Konfiguracja automapera

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

                 cfg.CreateMap<klasaA, klasaA_DTO>();

             })
            .CreateMapper();
    }

Pozostało 580 znaków

2018-05-14 02:54
Moderator

Rejestracja: 12 lat temu

Ostatnio: 15 minut temu

Lokalizacja: Wrocław

0

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


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2018-05-14 08:57

Rejestracja: 16 lat temu

Ostatnio: 5 godzin temu

Lokalizacja: Kraków

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);

It's easy to hate code you didn't write, without an understanding of the context in which it was written.
edytowany 1x, ostatnio: neves, 2018-05-14 08:58

Pozostało 580 znaków

2018-05-17 18:07

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

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

Pozostało 580 znaków

Odpowiedz

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