.Net Core008 Model和DTOAutoMapper基本使用
Posted RyouJou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net Core008 Model和DTOAutoMapper基本使用相关的知识,希望对你有一定的参考价值。
文章目录
数据传输模型DTO和数据模型Model
使用数据模型Model的弊处
直接暴露了业务模型的数据
颗粒度太粗
问题思考:使用Model不足的场景?
分离DTO和Model
下载依赖和DTO转换
下载依赖
# 下载依赖
AutoMapper.Extensions.Microsoft.Dependencylnjection
哪些数据是不想暴露给前端呢?哪些数据是需要做转换呢?
Model和DTO转换
创建Dtos文件夹、创建对应的Dto类
public class TouristRouteDto
AutoMapper使用提供DTO数据
AutoMapper 是一个对象-对象映射器,可以将一个对象映射到另一个对象
1.配置好Startup注册服务
//扫描profile文件【AutoMapper服务】
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
2.创建对应文件
创建Profiles文件夹及对应Profile文件
using AutoMapper;
public class TouristRouteProfile : Profile
//在映射类的构造函数中配置
public TouristRouteProfile()
投影和映射
投影就是把多个关系对象,经过一定的转换成为投影的产物
// dest投影的目标对象
// opt投影的原始对象
CreateMap<TouristRoute, TouristRouteDto>()
.ForMember(
dest => dest.Price,
opt => opt.MapFrom(src => src.OriginalPrice * (decimal)(src.DiscountPresent ?? 1))
)
3.注入到Controller中替换成为DTO数据
/*
固定注入
*/
private ITouristRouteRepository _touristRouteRepository;//私有变量加上下划线
private readonly IMapper _mapper;
public TouristRoutesController(ITouristRouteRepository touristRouteRepository,IMapper mapper)//构造
_touristRouteRepository = touristRouteRepository;//转变成私有存入
_mapper = mapper;
以上是关于.Net Core008 Model和DTOAutoMapper基本使用的主要内容,如果未能解决你的问题,请参考以下文章
.Net Core008 Model和DTOAutoMapper基本使用
在 ASP.NET Core MVC Razor 视图中,与 @model IEnumerable<Namespace.Model> Vs @model<Namespace.Mode
Asp.net Core 6.0 使用EF Model First 连接mysql