如何使用自动映射器映射字典<int,产品>和列表<ProductDto>?



我有这段代码,想知道如何为这个创建映射配置

public Product{ int ProductId, string ProductName}
public ProductDto { int ProductId, string ProductName}
_mapper.Map<Dictionary<int, Product>, List<ProductDto >>(product);

现在,这就是我所拥有的,我正在修补LINQ来解决这个问题。

public MappingProfile()
{
CreateMap<Dictionary<int, Product>, List<ProductDto>>()
.ForMember(dest => new List(){ new ProductDto(){}}, opt => opt.MapFrom(src => src.Values.))
}

在这种情况下,您不需要创建从Dictionary<int, Product>List<ProductDto>的映射配置文件。Dictionary<K, V>IEnumerable<KeyValuePair<K, V>>,因此如果您配置从KeyValuePair<int, Product>ProductDto的转换,AutoMapper将处理其余部分。

CreateMap<Product, ProductDto>();
CreateMap<KeyValuePair<int, Product>, ProductDto>()
.ConstructUsing((pair, context) => context.Mapper.Map<Product, ProductDto>(pair.Value));

最新更新