.NetCore 使用AutoMapper
Posted 龙码精神~~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NetCore 使用AutoMapper相关的知识,希望对你有一定的参考价值。
添加引用
AutoMapper
AutoMapper.Extensions.Microsoft.DependencyInjection
注册服务
services.AddAutoMapper();
配置映射
services.AddAutoMapper(); 中DI了AutoMapper中需要用到的服务,其中包括AutoMapper的配置类 Profile
那么怎么来使用这个Profile,只需要自定义一个类 继承 Profile 即可,在构造函数中配置下映射关系
public class CustomMapping : Profile { public CustomMapping() { CreateMap<Sys_UserLogininfo, LoginMsg>(); CreateMap<LoginMsg, Sys_UserLogininfo>(); } }
这里已经DI了CustomMapping,所以实例化了,构造函数自然也被执行过了,不需要再去DI CustomMapping类,在AutoMapper.Extensions.Microsoft.DependencyInjection中的
AddAutoMapper已经做了这些事情,这其中包括 IMapper 接口
在需要用的AutoMapper的地方通过构造函数注入下IMapper对象即可
如构造函数注入
IMapper _mapper; public UserController(IMapper mapper) { _mapper = mapper; }
_mapper.Map<LoginMsg, Sys_UserLogininfo>(loginMsg);
额外说明:在使用AutoMapper过程中如果类中字段不一致需要实现映射怎么处理
CreateMap<Sys_UserLogininfo, LoginMsg>().ForMember(c=>c.UserName,x=>x.MapFrom(k=>k.Use_Use));
映射 MapFrom 来自哪里的字段 到 ForMember 哪个字段
注意
CreateMap<Source,Destination>(); 来源->目标
以上是关于.NetCore 使用AutoMapper的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core搭建多层网站架构6.2-使用AutoMapper映射实体对象
尝试将 AutoMapper 添加到 .NetCore1.1 - 无法识别 services.AddAutoMapper()