.NetCore3.1配置AutoMapper-(int转枚举Description)

一、自定义AutoMapper配置类-using AutoMapper继承Profile

public class AutoMapperInit : Profile
    {
        public AutoMapperInit()
        {
            
            CreateMap<UpdatePatientRequest, PrehosPatientTreatmentDto>()
              .ForMember(d => d.DISEASE_HAPPEN_TIME, option => option.MapFrom(s => s.DISEASE_TIME))
              .ForMember(d => d.PLACE, option => option.MapFrom(s => s.DISEASE_SCENE))
              .ForMember(d => d.iss, option => option.MapFrom(s => s.iss))
              .ForMember(d => d.mrs, option => option.MapFrom(s => s.mrs))
              .ForMember(d => d.nihss, option => option.MapFrom(s => s.nihss))
              .ForMember(d => d.phi, option => option.MapFrom(s => s.phi))
              .ForMember(d => d.mews, option => option.MapFrom(s => s.mews))
              .ForMember(d => d.rts, option => option.MapFrom(s => s.rts))
              .ForMember(d => d.grace, option => option.MapFrom(s => s.grace))
              .ReverseMap()
              .ForMember(d => d.DIAGNOSIS_TIME, option => option.MapFrom(s => s.DISEASE_HAPPEN_TIME));

            CreateMap<PrehosPatientTreatmentDto, NURSING_DOC_LAPSS>();

            #region 
            CreateMap<org_emr_ycf, YcfDisplayDto>()
                .ForMember(dest => dest.IsNeed, m => m.MapFrom(s => ((FM_Need)s.fm_need).Description()));
            CreateMap<YcfAddDto, org_emr_ycf>().ForMember(s => s.ycf_code, opt => opt.Ignore());
            #endregion
        }
    }

二、在Startup-ConfigureServices中注册服务

#region 实体映射
            services.AddAutoMapper(typeof(AutoMapperInit));
    #endregion 

三、自定义枚举扩展方法

public static class EnumService
    {
        public static string Description(this Enum obj)
        {
            string fieldName = obj.ToString();
            Type t = obj.GetType();
            FieldInfo fi = t.GetField(fieldName);
            DescriptionAttribute[] arrDesc = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            return arrDesc[0].Description;
        }
    }

四、实体类中测试

public enum FM_Need
    {
        [Description("医学需要")]
        NotNeed,
        [Description("非医学需要")]
        Need
    }

 

原文地址:https://www.cnblogs.com/djd66/p/15251221.html