.NET Core中使用OOM框架,AutoMapper的使用介紹

(一)什麼是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

相關文章
相關標籤/搜索