AutoMapper使用筆記

AutoMapper使用筆記

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。

原文地址:http://www.cnblogs.com/dudu/archive/2011/12/16/2284828.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章