發(fā)布時(shí)間:2019-07-26
欄目:其他
automapper 是.net 項(xiàng)目中針對模型之間轉(zhuǎn)換映射的一個(gè)很好用的工具,不僅提高了開發(fā)的效率還使代碼更加簡潔探索創新,當(dāng)然也是開源的帶來全新智能,https://github.com/AutoMapper,這不多做介紹新產品,詳細(xì)看新型儲能,官網(wǎng)下面是介紹它在 .net core 項(xiàng)目中的使用
1. 首先當(dāng)然先引用 AutoMapper
- 你可以在NuGet中直接輸入AutoMapper直接引用,也可以在控制臺(tái)輸入 Install-Package AutoMapper
2. 其次我們要引用 AutoMapper 對依賴注入的一個(gè)擴(kuò)展 Extensions.Microsoft.DependencyInjection
- 由于.net core 中自帶依賴注入新品技,我們要用DI來注冊我們的Mapper類
3. 在Startup 類中找到 ConfigureServices 方法 引用我們擴(kuò)展中的方法
4. 在項(xiàng)目中創(chuàng)建一個(gè)映射配置類範圍,可以項(xiàng)目中的任何文件夾下,擴(kuò)展代碼中是通過反射找出程序集中的所有映射配置
public class UserProfile : Profile
{
public UserProfile()
ASPCMS批量上傳內(nèi)容{
// 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;
ASPCMS批量刪除關(guān)鍵詞 _logger = logger;
_mapper = mapper;
}
6. 最后就可以使用mapper
1
2
3
4
5
6
7
8
9
ASPCMS批量添加欄目10
11
ASPCMS批量添加產(chǎn)品 12
13
14
15
16
17
public IActionResult AddUser(UserInfoModel model)
{
if (!ModelState.IsValid)
ASPCMS批量更新文章 {
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失敿檶嵶?】臻g廣闊!"
});
}
文章地址:http://61py.com/article/other/AutoMapperzaspnetcorezdsy.html