c# - net - Automapper con lista de niños anidada
imapper c# (1)
Puede usar ForMember
y MapFrom
( documentación ).
Su configuración de Mapper podría ser:
Mapper.CreateMap<Module, ModuleUI>()
.ForMember(s => s.Text, c => c.MapFrom(m => m.Name))
.ForMember(s => s.ImagePath, c => c.MapFrom(m => m.ImageName))
.ForMember(s => s.PageUIs, c => c.MapFrom(m => m.Pages));
Mapper.CreateMap<Page, PageUI>();
Uso:
var dest = Mapper.Map<ModuleUI>(new Module
{
Name = "sds",
Id = 2,
ImageName = "sds",
Pages = new List<Page>
{
new Page(),
new Page()
}
});
Resultado:
Tengo dos clases debajo, el mapeo debe ser como este Id-> Id Name-> Text ImageName -> ImagePath Pages - PageUIs
¿Cómo puedo hacer esto usando Automapper?
public class Module
{
public int Id { get; set; }
public string Name { get; set; }
public string ImageName { get; set; }
public virtual ICollection<Page> Pages { get; set; }
}
public class ModuleUI
{
public int Id { get; set; }
public string Text { get; set; }
public string ImagePath { get; set; }
public List<PageUI> PageUIs{ get; set; }
}