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>
浙公网安备 33010602011771号