AutoMapper no está mapeando la lista de objetos hijo.
Tengo un objeto padre (marca) con una lista de 5 objetos hijos (campaña):
Brand response = await _brandRepository.GetAsync(request.Id);
//other properties mapped fine, but Campaign is null..
var result = _mapper.Map<branddto>(response);
return result;
Tengo estas definiciones para el mapeo:
CreateMap<domain.entity.campaign, campaigndto="">();
CreateMap<domain.entity.brand, branddto="">();
Objetos:
public class BrandDto
{
public int Id { get; set; }
public string Name { get; set; }
public List<campaigndto> Campaign { get; set; }
}
public class CampaignDto
{
public int Id { get; set; }
public int? ParentCampaignId { get; set; }
public int BrandId { get; set; }
public CampaignDto ParentCampaign { get; set; }
public BrandDto Brand { get; set; }
}
Entidades:
public class Brand : SqlEntityBase
{
public string Name { get; set; }
public List<campaign> Campaign { get; set; } = new List<campaign>();
}
public class Campaign : SqlEntityBase
{
public int? ParentCampaignId { get; set; }
public int BrandId { get; set; }
public Guid ImpressionId { get; set; }
public string Name { get; set; }
public EntryStatus Status { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public DateTime CreatedOn { get; set; }
public Brand Brand { get; set; }
public Campaign ParentCampaign { get; set; }
}
Si mapeo el objeto hijo manualmente, funciona bien, pero no es la manera correcta. ¿Cómo puedo hacerlo de manera adecuada?</domain.entity.brand,></domain.entity.campaign,>
davy.ai
Parece que la propiedad Campaign en la entidad Brand no se está asignando correctamente a la propiedad CampaignDto en BrandDto.
Para solucionar esto, debes agregar una configuración de asignación para la propiedad Campaign en la entidad Brand a la lista CampaignDto en BrandDto.
Aquí te mostramos un ejemplo de cómo hacerlo:
El método ForMember toma dos parámetros: el primero es la propiedad de destino (en este caso, la lista CampaignDto en BrandDto), y el segundo es una expresión que especifica cómo asignar la propiedad origen (en este caso, la lista Campaign en la entidad Brand) a la propiedad de destino.
Con esta configuración en su lugar, el Mapper debería ser capaz de asignar automáticamente la lista Campaign en la entidad Brand a la lista CampaignDto en BrandDto.
¡Espero que esto ayude!</domain.entity.brand,></domain.entity.campaign,>