1.nuget 安装程序集

安装AutoMapper和AutoMapper.Extension.Microsoft.DependencyInjection
2.配置映射关系
新增类文件,在类里面配置映射关系
cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
using Models;
using SmartFactoryCommon;
namespace SmartFactoryBusinessInterface
{
public class AutoMapperConfigs : Profile
{
public AutoMapperConfigs()
{
CreateMap<SystemLog,SystemLogDto>().ReverseMap();
CreateMap<PagingData<SystemLog>,PagingData<SystemLogDto>>().ReverseMap();
}
}
}
3.ioc配置映射关系生效
在Program.cs中配置映射关系
cs
builder.Services.AddAutoMapper(typeof(AutoMapperConfigs));
4.注入Mapper,map映射
本案例写在controller层,映射对象分别为SystemLog、SystemLogDto
cs
using System.Data.SqlClient;
using AutoMapper;
using log4net;
using Microsoft.AspNetCore.Mvc;
using Models;
using SmartFactoryBusinessInterface;
using SmartFactoryCommon;
using SqlSugar;
namespace SmartFactoryApi.Controllers
{
/// <summary>
/// 框架默认的控制器
/// </summary>
[ApiController]
[Route("[controller]")]
public class LogController : ControllerBase
{
private readonly ILogger<LogController> _logger;
private readonly ISqlSugarClient _IsqlSugarClient;
private readonly IBaseServices _baseServices;
//依赖注入AutoMapper
private readonly IMapper _Imapper;
//构造函数注入
public LogController(ILogger<LogController> logger,ISqlSugarClient IsqlSugarClient,IBaseServices baseServices, IMapper imapper)
{
_logger = logger;
_IsqlSugarClient = IsqlSugarClient;
_baseServices = baseServices;
_Imapper = imapper;
}
/// <summary>
/// 日志分页查询
/// </summary>
/// <param name="pageindex">当前第几页</param>
/// <param name="pagesize">每页几行数据</param>
/// <returns></returns>
[HttpGet("{pageindex:int}/{pagesize:int}")]
public IActionResult logPage(int pageindex, int pagesize)
{
_logger.LogInformation($"logPage开始执行。。。。 时间:{DateTime.Now}");
int totalCount = 0;
// 业务逻辑
//List<SystemLog> page = _sqlSugarClient.Queryable<SystemLog>().ToPageList(pageindex, pagesize,ref totalCount);
PagingData<SystemLog> page = _baseServices.QueryPage<SystemLog>
(c=>true,pagesize,pageindex,s=>s.Id,true);
//_Imapper.Map方法做映射,将PagingData<SystemLog>转换为PagingData<SystemLogDto>>对象
PagingData<SystemLogDto> pageDto = _Imapper.Map<PagingData<SystemLog>, PagingData<SystemLogDto>>(page);
return new JsonResult(pageDto);
}
}
}