AutoMapper的实现,与应用
-
AutoMapper 是一个简单的小库,旨在解决一个看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码,比如说当我用前台传来的DTO需要映射到实体的时候,我们总不能一个一个赋值,100个字段,200个字段呢,这里映射代码就很无聊,也很费时间,所有我们用到 AutoMapper 这个组件,大大提高了我们编写程序的速度。
-
代码的实现
首先我们需要安装一个组件,可以在 nuget 中安装,安装最高版本13.0.1
-
开始,我们要给类库去继承 Profile ,Profile 是AutoMapper库中的一个抽象类,用于定义对象之间的映射关系,在我们继承这个类之后,在类中配置对象之间的映射规则。
//创建一个 MaingFioles 的类,去继承 Profile public class MaingFioles: Profile { //在这个我们做一个该类的构造函数 public MaingFioles() { // 使用 CreateMap 方法进行对象映射配置,将 UserAddDTO 类映射到 UserInfor 类,并指定可逆转的映射关系 CreateMap<UserAddDTO, UserInfor>().ReverseMap(); //如需要添加就在里 //如 CreateMap<A,B>().ReverseMap(); } }
在上述片段中,我们给 MaingFioles 类做了一个继承 Profile,在类中实现了一个构造函数,其中 CreateMap 创建了一个对象与对象 之间的映射方法,我们可以指定源类型和目标类型之间的映射规则,告诉 AutoMapper 如何将一个对象的属性值映射到另一个对象, 其中的 .ReverseMap() 方法代表映射之间是相互的,表示两个对象是可以双向映射的。
-
现在,我们要求调用他
-
当然在我们需要用到 两个实体映射之间,我们就要安装包源,即上述第2条。
-
在我们所需要的层去引入 using AutoMapper;
private readonly IMapper _mapper;
-
加入构造函数
-
解析
-
最后我们需要在 Program 中注入(重中之重)
//注入AutoMapper builder.Services.AddAutoMapper(typeof(MaingFioles));
-