AutoMapper使用筆記

來源:互聯網
上載者:User

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。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.