使用Automapper映射对象列表

时间:2017-03-01 02:40:41

标签: c# automapper

我有一个对象(ProductModel),它有一个嵌套的图像列表。我正在尝试简化将此列表作为其属性的模型(Product)。我正在使用Automapper,但我似乎无法正确地获得映射配置。我查看了其他几篇文章,但它们似乎与我想要实现的有点不同。

// Map to:
public class Product
{
    public List<Image> Images { get; set; }
}

public class Image
{
    public string url { get; set; }
}


// Map from:
public class ProductModel
{
    public ImageSet ImageSet { get; set; }
}

public class ImageSet
{
    public List<ImageDetail> ImageDetails { get; set; }
}

public class ImageDetail
{
    public string Url { get; set; }
}

1 个答案:

答案 0 :(得分:2)

以下配置应该有效:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<ImageDetail, Image>();
    cfg.CreateMap<ProductModel, Product>()
        .ForMember(dest => dest.Images, opt => opt.MapFrom(src => src.ImageSet.ImageDetails))
        ;
});