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
相关产品推荐
相关产品推荐

