AutoMapper是一個.NET的對象映射工具。
項目地址:https://github.com/AutoMapper/AutoMapper。
協助文檔:https://github.com/AutoMapper/AutoMapper/wiki
主要用途
領域對象與DTO之間的轉換、資料庫查詢結果映射至實體物件。
使用筆記
情境1:源類型BlogEntry,目標類型BlogPostDto,指定屬性進行映射(BlogEntry.ID對應於BlogPostDto.PostId)。
代碼:
AutoMapper.Mapper.CreateMap<BlogEntry, BlogPostDto>()
.ForMember(dto => dto.PostId, opt => opt.MapFrom(entity => entity.ID));
情境2:IDataReader映射至實體類
代碼:
using (IDataReader reader = _db.ExecuteReader(command))
{
if (reader.Read())
{
return AutoMapper.Mapper.DynamicMap<BlogConfig>(reader);
}
}
情境3:清單類型之間的映射,比如:源類型List<BlogSite>,目標類型List<BlogSiteDto>
代碼如下:
AutoMapper.Mapper.CreateMap<BlogSite, BlogSiteDto>();
var blogSiteDto = AutoMapper.Mapper.Map<List<BlogSite>, List<BlogSiteDto>>(blogSite);
註:必須要先通過CreateMap建立BlogSite與BlogSiteDto的映射關係。
情境4:在映射時為目標執行個體的屬性指定值
代碼如下:
var blogSiteDto = new BlogSiteDto();
AutoMapper.Mapper.CreateMap<BlogEntry, BlogPostDto>()
.ForMember(dto => dto.BlogSiteDto, opt => opt.UseValue(blogSiteDto));
註:BlogSiteDto是BlogPostDto的一個屬性。
補充:
AutoMapper的配置(比如AutoMapper.Mapper.CreateMap<BlogSite, BlogSiteDto>();)建議放在程式啟動時,比如Global.asax的Application_Start, BootStrapper。
AutoMapper是一個.NET的對象映射工具。
項目地址:https://github.com/AutoMapper/AutoMapper。
協助文檔:https://github.com/AutoMapper/AutoMapper/wiki
主要用途
領域對象與DTO之間的轉換、資料庫查詢結果映射至實體物件。
使用筆記
情境1:源類型BlogEntry,目標類型BlogPostDto,指定屬性進行映射(BlogEntry.ID對應於BlogPostDto.PostId)。
代碼:
AutoMapper.Mapper.CreateMap<BlogEntry, BlogPostDto>()
.ForMember(dto => dto.PostId, opt => opt.MapFrom(entity => entity.ID));
情境2:IDataReader映射至實體類
代碼:
using (IDataReader reader = _db.ExecuteReader(command))
{
if (reader.Read())
{
return AutoMapper.Mapper.DynamicMap<BlogConfig>(reader);
}
}
情境3:清單類型之間的映射,比如:源類型List<BlogSite>,目標類型List<BlogSiteDto>
代碼如下:
AutoMapper.Mapper.CreateMap<BlogSite, BlogSiteDto>();
var blogSiteDto = AutoMapper.Mapper.Map<List<BlogSite>, List<BlogSiteDto>>(blogSite);
註:必須要先通過CreateMap建立BlogSite與BlogSiteDto的映射關係。
情境4:在映射時為目標執行個體的屬性指定值
代碼如下:
var blogSiteDto = new BlogSiteDto();
AutoMapper.Mapper.CreateMap<BlogEntry, BlogPostDto>()
.ForMember(dto => dto.BlogSiteDto, opt => opt.UseValue(blogSiteDto));
註:BlogSiteDto是BlogPostDto的一個屬性。
補充:
AutoMapper的配置(比如AutoMapper.Mapper.CreateMap<BlogSite, BlogSiteDto>();)建議放在程式啟動時,比如Global.asax的Application_Start, BootStrapper。