You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AutoMapper实现嵌套列表的多层级DTO字段映射

你只需要新增Item到OrderItem的映射配置即可,AutoMapper会自动处理列表类型的元素映射,多层嵌套字段可以直接指定完整属性路径完成映射。

完整配置如下:

var config = new MapperConfiguration(cfg => {
    // request到requestDTO的映射,字段同名无需手动配置,AutoMapper默认按名称匹配
    cfg.CreateMap<request, requestDTO>();
    
    // 配置列表元素Item到OrderItem的映射规则
    cfg.CreateMap<Item, OrderItem>()
        .ForMember(dest => dest.price.total, opt => opt.MapFrom(src => src.itemPrice))
        .ForMember(dest => dest.price.regular, opt => opt.MapFrom(src => src.regularPrice));
});

补充说明:

  • 只要配置了单个元素的映射规则,AutoMapper会自动完成List<Item>到List<OrderItem>的批量映射,不需要手动遍历处理。
  • 请确保你的所有DTO属性都添加了public修饰符,且嵌套类Price存在无参构造函数,否则AutoMapper无法自动初始化嵌套对象导致映射失败。
  • 同名属性(比如order、orderType、itemID)不需要显式配置映射规则,AutoMapper默认会按属性名自动匹配赋值,显式配置仅用于字段名不匹配或者有自定义转换逻辑的场景。

内容的提问来源于stack exchange,提问作者Ajay Srikanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:54:03