AutoMapper在asp.netcore中的使用

 automapper 是.net 项目中针对模型之间转换映射的一个很好用的工具,不仅提高了开发的效率还使代码更加简洁,当然也是开源的,https://github.com/AutoMapper,这不多做介绍,详细看,官网下面是介绍它在 .net core 项目中的使用

 1. 首先当然先引用 AutoMapper

   - 你可以在NuGet中直接输入AutoMapper直接引用,也可以在控制台输入 Install-Package AutoMapper

 

 2. 其次我们要引用 AutoMapper 对依赖注入的一个扩展  Extensions.Microsoft.DependencyInjection

   - 由于.net core 中自带依赖注入,我们要用DI来注册我们的Mapper类

 

 3. 在Startup 类中找到 ConfigureServices 方法 引用我们扩展中的方法

  

 4. 在项目中创建一个映射配置类,可以项目中的任何文件夹下,扩展代码中是通过反射找出程序集中的所有映射配置


  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中用构造函数注入 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社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值