EDITAR: El título es incorrecto, estoy tratando de asignar desde una lista fuente a la lista fuente de un modelo anidado.Mapa de AutoMapper desde la colección anidada de origen a otra colección
Tengo problemas para tratar de asignar una lista a otra enumerada en un modelo anidado. Tipo y sin aplanar de tipo. El problema es que no sé cómo hacer las asignaciones.
Aquí es mi puesta a punto seguido mis intentos fallidos de mapeo:
public class DestinationModel
{
public DestinationNestedViewModel sestinationNestedViewModel { get; set; }
}
public class DestinationNestedViewModel
{
public List<ItemModel> NestedList { get; set; }
}
public class SourceModel
{
public List<Item> SourceList { get; set; }
}
Dónde punto y la ItemModel ya han definido un mapeo entre ellos
no puedo hacerlo de esta manera ...
Mapper.CreateMap<SourceModel, DestinationModel>()
.ForMember(d => d.DestinationNestedViewModel.NestedList,
opt => opt.MapFrom(src => src.SourceList))
ERROR:
Expresión 'd => d.DestinationNestedViewMode l.NestedList' debe resolver a nombre member.Parameter de nivel superior: LambdaExpression
que luego trató de algo como esto:
.ForMember(d => d.DestinationNestedViewModel,
o => o.MapFrom(t => new DestinationNestedViewModel { NestedList = t.SourceList }))
El problema no es NestedList = t.SourceList. Cada uno contiene elementos diferentes, ItemModel y Artículo respectivamente. Entonces, necesitan ser mapeados.
¿Cómo puedo mapear esto?
No estoy seguro de si he entendido bien , pero creo que debe crear una asignación de Item a ItemModel, por lo que AutoMapper sabe cómo asignar objetos Item a objetos ItemModel. –
Ya se ha definido un mapeo entre Item y ItemModel, pero la asignación no se está desencadenando porque NestedList pertenece a un DestinationModel que a su vez pertenece a DestinationNestedViewModel. Automapper no puede manejar 2 niveles de modelos al mapear (al menos no de la manera que lo he probado) – getit