AutoMapper入门 简单使用

第一步:导入automapper

  确定使用位置,通过NuGet包导入AutoMapper.

第二步:使用AutoMapper

  添加一个类文件,继承Profile.创建无参构造,配置关系;

例: 

//class1转换成DTO类,Class1为model类,Class1DTO为DTO类,type为Type类,class1中存在TypeCode与Type表关联

  CreateMap<Class1, Class1DTO>()  

.ForMember(s => s.TypeName, sp => sp.MapFrom(src => src.Type.TypeName));


//class1DTO转换为model类

CreateMap<Class1DTO, Class1>()


第三步:修改ToDTO方法,ToModel方法

//ToModel方法修改

var Class1Info = Mapper.Map<DTOClass1, Class1>(dtoClass1Info);


//ToDTO方法修改

var class1DtoInfo = Mapper.Map<Class1, Class1DTO>(class1Info);


第四步:在运行程序全局应用文件Global.asax.cs中添加配置

Mapper.Initialize(a => a.AddProfile(typeof (BLLMapper)));  BllMapper为第二步添加的类文件名


注:当表中存在导航属性,即包含其他表数据,并在类中声明了属性时,需在配置中配置

例:

//导航属性

class Class1

  public string TypeCode{get;set;}

   public Type Type{get;set;}


class Type 

 public string TypeCode{get;set;}

 pulic string TypeName {get;set;}


//关系配置

 CreateMap<Class1, Class1DTO>()  

.ForMember(s => s.TypeName, sp => sp.MapFrom(src => src.Type.TypeName));


@@重点: ProjectTo的使用:

//获取Class1所有数据

var classData= Class1DAL.getData();

//通过projectTo直接集合之间对象类型转换;但只有是简单关系才可使用,即没有导航属性,或者指明了导航属性(如上例)

var class1Dto = classData.ProjectTo<Class1DTO>().ToList();

猜你喜欢

转载自blog.csdn.net/qq_30648687/article/details/79784602