在.net core 中使用 AutoMapper 映射

发布时间 2023-08-25 11:55:54作者: ZCLTC

1、首先在Service层引入Nuget包

2、在Api层添加AutoMapper文件夹,然后添加映射配置文件CustomProfile.cs 用来匹配所有的映射对象关系

CustomProfile.cs中的内置代码如下:

 1     public class CustomProfile:Profile
 2     {
 3         /// <summary>
 4         /// 配置构造函数,用来创建关系映射
 5         /// </summary>
 6         public CustomProfile()
 7         {
 8             CreateMap<RoleDto,Role>().ReverseMap();
 9         }
10     }

 

3、注入服务  找到Startup.cs 在ConfiguService中 添加AutoMapper(此注入服务具有一定顺序,最好放在最上面)

 

基本使用方式,在构造函数中进行注册,在接口中进行运用:

 1  pub1ic class RoleController : ControllerBase
 2  {
 3       //private readonly IRoleServices_ roleService;
 4       private readonly IMapper  _mapper;
 5       autoFac配置
 6       private readonly IRoleServices _roleService;
 7       // use _mapper. Map or _ mapper. ProjectTo
 8      public RoleController (IRoleServices roleService, IMapper mapper)
 9      {
10            _roleService = roleService;
11          _mapper = mapper ;   
12      }
13 
14      public IActionResult CreateRole(RoleDto roleDto)
15     {
16          var role=_mapper.Map<Role>(roleDto);
17          var result = _roleService.CreateRole(role);
18          return Ok(result);
19     }      
20  
21 }

这就是AutoMapper了,当你的实体类越来越多 业务也越来越复杂的时候,就能体现出这种映射的好处了。