2017-03-01 144 views
2

我有一个对象(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; } 
} 
+0

你需要具有相同名字的属性,或创建一个映射confiugration –

+0

是的,这是我想弄清楚,因为配置对象不能改变。 – RyanOC

+0

适用于EF Core或4的自动机的版本是什么? –

回答

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)) 
     ; 
}); 
+0

这样做,感谢您的帮助! – RyanOC