我有这段代码,想知道如何为这个创建映射配置
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));