memberlist - Cómo asignar una referencia principal a una propiedad en un elemento secundario con AutoMapper
custom automapper (1)
Utilice AfterMap. Algo como esto:
Mapper.CreateMap<ParentData, Parent>()
.AfterMap((s,d) => {
foreach(var c in d.Children)
c.Parent = d;
});
Estoy tratando de encontrar una manera de configurar AutoMapper para establecer una propiedad en un objeto de destino con una referencia de su objeto principal de origen. El siguiente código muestra lo que estoy tratando de lograr. Estoy moviendo datos a las instancias de Padres e Hijos desde los objetos de datos. La asignación funciona bien para crear la colección de la Lista con los datos correctos, pero necesito tener un ForEach para asignar la referencia de la instancia principal.
public class ParentChildMapper
{
public void MapData(ParentData parentData)
{
Mapper.CreateMap<ParentData, Parent>();
Mapper.CreateMap<ChildData, Child>();
//Populates both the Parent & List of Child objects:
var parent = Mapper.Map<ParentData, Parent>(parentData);
//Is there a way of doing this in AutoMapper?
foreach (var child in parent.Children)
{
child.Parent = parent;
}
//do other stuff with parent
}
}
public class Parent
{
public virtual string FamilyName { get; set; }
public virtual IList<Child> Children { get; set; }
}
public class Child
{
public virtual string FirstName { get; set; }
public virtual Parent Parent { get; set; }
}
public class ParentData
{
public string FamilyName { get; set; }
public List<Child> Children { get; set; }
}
public class ChildData
{
public string FirstName { get; set; }
}