使用自动映射器映射对象列表
问题描述:
我有一个对象(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; }
}
答
下面的配置应该工作:
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
你需要具有相同名字的属性,或创建一个映射confiugration –
是的,这是我想弄清楚,因为配置对象不能改变。 – RyanOC
适用于EF Core或4的自动机的版本是什么? –