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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:54:14