• .NET CORE 中用AutoMapper将实体转Dto


    .NET CORE 中用AutoMapper将实体转Dto

    星速云 2019-08-31 10:06:02 193 收藏
    展开
    在开发过程中,经常会碰到数据实体对象(Entity)和数据传输对象(Dto)的转换,手写代码太烦太LOW,可以用 AutoMapper 按规则自动转换。

    1、安装两个依赖包,通过Nuget安装

    AutoMapper 
    AutoMapper.Extensions.Microsoft.DependencyInjection //startup 中 services.AddAutoMapper(); 需要依赖此包。

    2、在Startup中添加AutoMapper

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        //添加对AutoMapper的支持,会查找所有程序集中继承了 Profile 的类,,,,,,,牛逼啊,下面的类自动调用到了 AutoMapperConfigs: Profile,他说“会查找所有程序集中继承了 Profile 的类”
        services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
    }

    3、创建AutoMapper映射规则,继承 Profile

    public class AutoMapperConfigs: Profile
    {
            //添加你的实体映射关系.
            public AutoMapperConfigs()
            {
                //UserEntity转UserDto.
                CreateMap<UserEntity, UserDto>()
                    //映射发生之前
                    .BeforeMap((source,dto) => {
                        //可以较为精确的控制输出数据格式
                        dto.CreateTime = Convert.ToDateTime(source.CreateTime).ToString("yyyy-MM-dd");
                    })
                    //映射发生之后
                    .AfterMap((source, dto) => {
                        //code ...
                    });
     
                //UserDto转UserEntity.
                CreateMap<UserDto, UserEntity>();
            }
    }

    4、在Controller构造函数中注入IMapper,然后在方法中使用

    public class UserController : Controller
    {
         private readonly IMapper _mapper;
         public UserController(IMapper mapper)
         {
             _mapper = mapper;
         }
     
         [HttpGet]
         public JsonResult Get(int id=1)
         {
             //模拟数据
             var user = new UserEntity() { Id = id, UserName = "UserA" };
             //实体对象转Dto对象
             var userDto = _mapper.Map<UserDto>(user);
             return new JsonResult(userDto);
         }
     
         [HttpGet]
         public JsonResult Get()
         {
             //模拟数据
             var users = new List<UserEntity>();
             for (int i=0;i<5;i++)
             {
                 users.Add( new UserEntity() { Id = i, UserName = $"User{i}" });
             }
             
             //实体对象集合转Dto对象集合
             var userDtos = _mapper.Map<List<UserDto>>(usesr);
             return new JsonResult(userDtos);
         }
         
    }
    ————————————————

    原文链接:https://blog.csdn.net/wx_15323880413/article/details/100169581

  • 相关阅读:
    C++:new&delete
    C++:模板——函数模板1
    C/C++:static用法总结
    C++:内存分区
    C++:友元
    C++:构造函数3——浅拷贝和深拷贝
    C++:类中两个易被忽略的默认函数
    C++:析构函数
    C++:类中的赋值函数
    SHELL基础知识
  • 原文地址:https://www.cnblogs.com/wgscd/p/12890159.html
Copyright © 2020-2023  润新知