AutoMapper在asp.netcore中的使用
?automapper 是.net 項(xiàng)目中針對(duì)模型之間轉(zhuǎn)換映射的一個(gè)很好用的工具,不僅提高了開(kāi)發(fā)的效率還使代碼更加簡(jiǎn)潔,當(dāng)然也是開(kāi)源的,https://github.com/AutoMapper,這不多做介紹,詳細(xì)看,官網(wǎng)下面是介紹它在 .net core 項(xiàng)目中的使用
?1. 首先當(dāng)然先引用 AutoMapper
? ?- 你可以在NuGet中直接輸入AutoMapper直接引用,也可以在控制臺(tái)輸入 Install-Package AutoMapper
?
?2. 其次我們要引用 AutoMapper 對(duì)依賴注入的一個(gè)擴(kuò)展? Extensions.Microsoft.DependencyInjection
? ?- 由于.net core 中自帶依賴注入,我們要用DI來(lái)注冊(cè)我們的Mapper類
?
?3. 在Startup 類中找到 ConfigureServices 方法 引用我們擴(kuò)展中的方法
??
?4. 在項(xiàng)目中創(chuàng)建一個(gè)映射配置類,可以項(xiàng)目中的任何文件夾下,擴(kuò)展代碼中是通過(guò)反射找出程序集中的所有映射配置
| | public?class?UserProfile?:?Profile { public?UserProfile() { //?Add?as?many?of?these?lines?as?you?need?to?map?your?objects CreateMap<UserInfo,?UserInfoModel>(); CreateMap<UserInfoModel,?UserInfo>(); } } |
?5. 在 Controller中用構(gòu)造函數(shù)注入 IMapper?
| 1 2 3 4 5 6 7 8 9 10 | private?readonly?IMapper?_mapper; public?UserInfoController(IUserInfoService?userInfoService, IUnitOfWork?unitOfWork,?ILogger<UserInfoController>?logger,?IMapper?mapper) { _unitOfWork?=?unitOfWork; _userInfoService?=?userInfoService; _logger?=?logger; _mapper?=?mapper; } |
6. 最后就可以使用mapper
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public?IActionResult?AddUser(UserInfoModel?model) { if?(!ModelState.IsValid) { return?View(model); } var?user?=?_mapper.Map<UserInfo>(model);?//映射 var?repoUser?=?_unitOfWork.GetRepository<UserInfo>(); repoUser.Insert(user); var?r?=?_unitOfWork.SaveChanges(); //_userInfoService.AddUserInfo(); return?Json(new?MgResult() { Code?=?r?>?0???0?:?1, Msg?=?r?>?0???"ok"?:?"SaveChanges失敗!" }); } |
原文:http://www.cnblogs.com/fighting2014/p/7954191.html
.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的AutoMapper在asp.netcore中的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从ThoughtWorks 2017技术
- 下一篇: Hangfire在ASP.NET COR