为什么要用DTO?
1、DTO更注重数据,对领域对象进行合理封装,从而不会将领域对象的行为过分暴露给表现层
2、DTO是面向UI的需求而设计的,而领域模型是面向业务而设计的。因此DTO更适合于和表现层的交互,通过DTO我们实现了表现层与领域Model之间的解耦,因此改动领域Model不会影响UI层
3、DTO说白了就是数据而已,不包含任何的业务逻辑,属于瘦身型的对象,使用时可以根据不同的
什么是AutoMapper?
AutoMapper是一个简单的小型库, 用于将一个对象映射到另一个对象的代码。
怎么使用
NuGet安装AutoMapper,然后引入using AutoMapper.Configuration;
//使用AutoMapper转换,版本6.1.1
var cfg = new MapperConfigurationExpression();
cfg.CreateMap<FlowDTO, FlowBeginJob>();
//可以添加多个转换,就是类中还包含类,添加多个Map,子类也会自动转换
cfg.CreateMap<FlowTwoDTO, FlowTwoBeginJob>();
Mapper.Initialize(cfg);
var dto = Mapper.Map<FlowBeginJob>(flow);
//函数定义,第一个参数是源类型,第二个是目标类型
public IMappingExpression<TSource, TDestination> CreateMap<TSource, TDestination>();