前言
为什么要使用DTO:
1:安全,如果数据库的东西要可以直接访问,那用户资料就容易被读取。
2:解耦,通过DTO我们实现了表现层与Model之间的解耦,表现层不引用Model,如果开发过程中我们的模型改变了,而界面没变,我们就只需要改Model而不需要去改表现层中的东西。
3:DTO是面向界面UI,是通过UI的需求来定义的。
如何实现
安装AutoMapper包,然后注入,代码如下:
#region AutoMapper
services.AddAutoMapper(typeof(CustomAutoMapperProfile));
#endregion
建立一个类,实现DTO与对应类的映射
public class CustomAutoMapperProfile : Profile
{
public CustomAutoMapperProfile()
{
base.CreateMap<WriterInfo, WriterDTO>();
base.CreateMap<BlogNews, BlogNewsDTO>()
.ForMember(dest => dest.TypeName, sourse => sourse.MapFrom(src => src.TypeInfo.Name))
.ForMember(dest => dest.WriterName, sourse => sourse.MapFrom(src => src.WriterInfo.Name));
}
}
完成