WebAPI-02-1 数据传输对象DTO和AutoMapper的使用

一、DTO(Data Transfet Object)

:领域数据传输对象,将数据从服务端传输到客户端,可以屏蔽一些不想传输的多余数据

区别实体:在控制器和数据访问之间传输

创建Dtos文件夹,添加Dto类

public class PlayerDto
{
    public Guid Id { get; set; }
    public string Account { get; set; } = null!;
    public string AccountType { get; set; } = null!;
    public DateTime DateCreated { get; set; }
}

把实体转换成DTO,,手写太麻烦

1、属性太多

2、类太多

3、修改还要同步修改转换代码

所以,借助AutoMapper转换

 

 

二、AutoMapper

1、添加依赖包AutoMapper

2、服务注册

builder.Services.AddAutoMapper(typeof(Program));

3、添加映射类MappingProfile

public class MappingProfile : Profile
{
    public MappingProfile()
    {
        CreateMap<Player, PlayerDto>();
        CreateMap<Player, PlayerWithCharactersDto>();
        CreateMap<Character, CharacterDto>();

        CreateMap<PlayerForCreationDto, Player>();
        CreateMap<PlayerForUpdateDto, Player>();
    }
}

4、控制器里面使用:注入IMapper mapper

var result = mapper.Map<IEnumerable<PlayerDto>>(player);

IEnumerable<Player>

转换成

IEnumerable<PlayerDto>

 

posted on 2025-03-14 20:30  张彦山  阅读(51)  评论(0)    收藏  举报