Asp.NetCore 3.1 使用AutoMapper自動(dòng)映射轉(zhuǎn)換實(shí)體 DTO,Data2ViewModel

01什么是AutoMapper?
下面為AutoMapper官方的解釋:
AutoMapper是一個(gè)對(duì)象-對(duì)象映射器。對(duì)象-對(duì)象映射通過(guò)將一種類型的輸入對(duì)象轉(zhuǎn)換為另一種類型的輸出對(duì)象來(lái)工作。
使AutoMapper變得有趣的是,它提供了一些有趣的約定,以免去搞清楚如何將類型A映射為類型B。只要類型B遵循AutoMapper既定的約定,就需要幾乎零配置來(lái)映射兩個(gè)類型。
02使用AutoMapper有啥好處?
其實(shí),這個(gè)比較好回答,通常在我們使用面向?qū)ο缶幊讨?,?jīng)常會(huì)遇到,ORM從數(shù)據(jù)庫(kù)表中獲取到比較多的字段,
這個(gè)時(shí)候我們只需要在頁(yè)面展示比較少的字段,也可以起到節(jié)流等的作用,如果一兩個(gè)實(shí)體的轉(zhuǎn)換還好,成白上千N多地方都需要這樣的操作,
還是手動(dòng)一個(gè)一個(gè)的賦值實(shí)就大大降低了開(kāi)發(fā)效率,這個(gè)時(shí)候AutoMapper就派上了用場(chǎng)。
03怎么使用AutoMapper?
1:引入NuGet包 AutoMapper.Extensions.Microsoft.DependencyInjection 8.0.1最新版本即可,其他相關(guān)的依賴包會(huì)自動(dòng)導(dǎo)入新增進(jìn)來(lái)

2:定義好相關(guān)的model實(shí)體


3:注入AutoMapper的服務(wù)

?4:使用AutoMapper創(chuàng)建實(shí)體之間的關(guān)系,定義一個(gè)來(lái)繼承 Profile

5:在Core WebApi中使用AutoMapper




6:看測(cè)試結(jié)果:
兩個(gè)表的定義的字存在不一致,映射的時(shí)候也沒(méi)有指明關(guān)系,會(huì)導(dǎo)致相關(guān)字段沒(méi)有值

映射并指明兩者之間的屬性關(guān)系之后:

最后來(lái)一個(gè)集合的映射測(cè)試,測(cè)試結(jié)果是ok的

7:最后還不過(guò)癮,再來(lái)一波小菜:下面只是起到拋磚引玉的作用, 學(xué)友們可以根據(jù)自己的實(shí)際情況來(lái)使用擴(kuò)展方法,直接點(diǎn)出,更是美美噠?。?!

本文轉(zhuǎn)載自博客園:https://www.cnblogs.com/Fengge518/p/13573622.html