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

MapsterMapper如何指定仅映射指定字段(如Age、Name)?

MapsterMapper 指定仅映射部分字段的实现方式

可以实现,Mapster提供了多种方式来指定仅映射部分字段,以下是针对你的需求的常用实现方式:

方法一:排除不需要映射的字段

通过Ignore方法直接排除不需要映射的Address字段,剩余字段会自动映射:

var config = TypeAdapterConfig.GlobalSettings.Clone();
config.ForType<People, PeopleDto>()
      .Ignore(dest => dest.Address)
      .MaxDepth(2);

// 使用配置进行映射
var people = new People { Age = 25, Name = "John", Address = "123 Main St" };
var peopleDto = people.Adapt<PeopleDto>(config);
// peopleDto.Address 会保持默认值(null)

方法二:显式指定需要映射的字段

通过Map方法逐个定义需要映射的字段,未指定的字段会保留默认值:

var config = TypeAdapterConfig.GlobalSettings.Clone();
config.ForType<People, PeopleDto>()
      .Map(dest => dest.Age, src => src.Age)
      .Map(dest => dest.Name, src => src.Name)
      .MaxDepth(2);

// 使用配置进行映射
var people = new People { Age = 25, Name = "John", Address = "123 Main St" };
var peopleDto = people.Adapt<PeopleDto>(config);
// peopleDto.Address 为默认值

方法三:临时映射配置

如果只需要单次映射生效,可以在Adapt方法中直接临时配置映射规则:

var people = new People { Age = 25, Name = "John", Address = "123 Main St" };
var peopleDto = people.Adapt<PeopleDto>(cfg => cfg
    .Map(dest => dest.Age, src => src.Age)
    .Map(dest => dest.Name, src => src.Name)
);
// peopleDto.Address 保持默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:40:59