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

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


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

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

5:在Core WebApi中使用AutoMapper




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

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

?最后來一個集合的映射測試,測試結(jié)果是ok的

7:最后還不過癮,再來一波小菜:下面只是起到拋磚引玉的作用, 學(xué)友們可以根據(jù)自己的實際情況來使用擴展方法,直接點出,更是美美噠?。。?/p>
本文轉(zhuǎn)載自博客園:https://www.cnblogs.com/Fengge518/p/13573622.html