(一)什麼是OOM:
OOM顧名思義,Object-Object-Mapping實體間相互轉換,AutoMapper其意義在於幫助你無需手動的轉換簡單而又麻煩的實體間關係。app
(二)AutoMapper是什麼:
AutoMapper是基於對象到對象約定的映射工具,經常使用於(但並不只限制於)把複雜的對象模型轉爲DTO,通常用於ViewModel模式和跨 服務範疇。工具
(三)在.NET Core項目中如何使用它:
1.經過Nuget安裝AutoMapper到項目:Install-Package AutoMapper
2.定義好Model類和DTO類:
`//Model類
public class ProjectEntity
{code
public int ID { get; set; } public string ProjectName { get; set; } public string ProjectImg { get; set; } public string ProjectCreateDate { get; set; } public List<ProjectTaskEntity> Tasks { get; set; }
}
`對象
`//DTO類
public class ProjectDto
{get
public int ProjectID { get; set; } public string ProjectName { get; set; } public string ProjectImg { get; set; } public string ProjectCreateDate { get; set; } public List<ProjectTaskDto> Tasks { get; set; }
}`string
3.配置映射關係,在ConfigureServices方法中加入映射關係:
`//配置爲雙向映射
CreateMap<ProjectTaskDto, ProjectTaskEntity>()
.ReverseMap();`it
4.若是Model類中的部分字段與DTO的字段不一致時,如何映射呢?
`CreateMap<ProjectDto, ProjectEntity>()
.ReverseMap()
.ForMember(des => des.Date, opt => opt.MapFrom(src => src.CreateTime.ToString("yyyy-MM-dd hh:mm:ss")));`class
5.執行映射轉換:
`//獲取實體對象
ProjectEntity _projectEntity = GetProjectsByDB(projectid);
//將實體對象映射到DTO
ProjectDto _projectDto = _mapper.Map<ProjectDto>(_projectEntity);`配置
6.若是是集合該如何轉換呢?var ProjectEntitys = AutoMapper.Mapper.Map<List< ProjectEntity>, List< ProjectDto >>( _projectEntitys);
List