AutoMapper如何配置单个属性跨类型(string转int)映射
AutoMapper 异名异类型属性映射配置方法
你需要在映射配置链中通过ForMember手动指定两个异名异类型属性的映射规则,注意先修正你原有配置里的源类名笔误:你写的VehicleEnity漏了字母t,正确类名是VehicleEntity,否则配置无法正常编译。
基础无容错配置
如果确定NumberPlacesStr字段存储的一定是合法整数格式,直接用int.Parse做类型转换即可:
configuration.CreateMap<VehicleEntity, VehicleDto>() .ForMember( dest => dest.NumberPlaces, opt => opt.MapFrom(src => int.Parse(src.NumberPlacesStr)) );
配置完成后,其余同名同类型的属性会继续遵循AutoMapper默认映射规则自动赋值,不需要重复手动配置。
带容错的生产环境配置
如果NumberPlacesStr可能存在空值、非数字格式的脏数据,建议增加容错逻辑,转换失败时返回默认值0,避免运行时抛出类型转换异常:
configuration.CreateMap<VehicleEntity, VehicleDto>() .ForMember( dest => dest.NumberPlaces, opt => opt.MapFrom(src => int.TryParse(src.NumberPlacesStr, out int parsedPlaces) ? parsedPlaces : 0 ) );
如果项目中存在大量string转int的重复映射需求,可以单独定义通用自定义值转换器全局注册,不用每次编写重复转换逻辑;单一场景下使用上述
ForMember配置就足够满足需求。
内容的提问来源于stack exchange,提问作者BennoDual
相关产品推荐
相关产品推荐

