.Net Core 中使用AutoMapper进行对象映射

在.NET CORE中,我们可以使用AutoMapper来实现对象数据传输也就是Dto。

 1、需要安装如下两个包,通过Nuget安装即可:

1 AutoMapper

2 AutoMapper.Extensions.Microsoft.DependencyInjection 

2、在Startup中添加AutoMapper:

1
services.AddAutoMapper();

3、创建AutoMapper映射规则,得告诉AutoMapper映射关系:

复制代码
public class HosTesterProfile : AutoMapper.Profile
    {
        public HosTesterProfile()
        {
            CreateMap<HosTester, HosTesterHis>().ForMember(x => x.Id, opt => opt.Ignore())
                .ForMember(x => x.IsActive, opt => opt.MapFrom(src => true))
                .ForMember(x => x.Name, opt => opt.MapFrom(src => src.BranchName))
                .ForMember(x => x.Code, opt => opt.MapFrom(src => src.CjdBranceCode))
                .ForMember(x => x.OutCode1, opt => opt.MapFrom(src => src.Id))
                .ForMember(x => x.OutCode2, opt => opt.MapFrom(src => src.BranchCode));
        }
    }
复制代码

4、在你的Controller构造函数中注入你的IMapper:

public class SyncTesterToTesterHis 
{
     private readonly IMapper _mapper;
   public SyncTesterToTesterHis( IMapper mapper)
     {
      _mapper = mapper;
   }
}

5、单个对象转Dto:

private Task Sync()
  {
        var hosTester=new HosTester(){
          Id=1,Name="张三"
       }
        var hostesterHis = _mapper.Map<HosTesterHis>(hosTester); 
}

6、集合转Dto集合:

复制代码
private Task Sync()
{
  var hosTester=new List<HosTester>
  {
    new HosTester(){Id=1,Name="张三"}
    new HosTester(){Id=2,Name="李四"}
  }
  var hostesterHis = _mapper.Map<List<HosTesterHis>>(hosTester);
}
复制代码

 

posted @   进击的黑大帅  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示