.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 }
标签:MapFrom,Description,int,ForMember,CreateMap,AutoMapper,public,option 来源: https://www.cnblogs.com/ABC-wangyuhan/p/14705944.html