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 

AutoMapper在asp.netcore中的使用相关推荐

  1. 跟我一起学.NetCore之Asp.NetCore中集成Autofac扩展

    前言 前两节针对.NetCore自带的依赖注入进行简要概述,对于日常开发的需求应该是能满足了,那为什么还需要引入第三方依赖注入组件呢,这里就从自带的依赖注入来分析,有什么样的需求满足不了?主要归纳为以 ...

  2. asp论坛回复功能怎么实现_在asp.netcore中使用中间件(middleware)实现api拦截及验证功能

    本文只对api接口,header请求参数进行简单验证,起到抛砖引玉使用,需要深入验证,请自行扩展 项目目录结构如图 中间件类 using ApiMiddleware.Common.DataEnityM ...

  3. 壹佰文章总结| 关于ASP.NETCore的分享之路

    公众号不让放外网链接,点击[阅读原文],去我的博客园,可以看对应的详细文章. (关于学习ASP.NET Core需要了解和掌握的知识点图) 一言不合就来图,各位博客园小伙伴大家好,感觉好久没有写文章了 ...

  4. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  5. ASP.NETCore

    0. ASP.NETCore 介绍 ASP.NETCore是一个新的开源和跨平台的框架,用于构建如Web应用.物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.ASP.NET C ...

  6. 4 angular 重构 项目_c# – 将Angular 4添加到ASP.NETCore项目中

    我想在Visual Studio 2017中的ASP.NetCore 1.1项目中使用Angular 4(读作:* .csproj文件) 以前使用ASP.NET Core 1.0和Visual Stu ...

  7. 极简实用的Asp.NetCore模块化框架决定免费开源了

    背景 在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对ABP VNext痛下狠心,研究一段时间后,不得不说 ABP VNext的代码层面很规范,也都是一些最佳实践,开发出一个模块 ...

  8. Asp.NetCore MVC Web 应用

    Asp.NetCore MVC 与 普通的MVC 基本一致, 只是代码结构稍有改动 一.创建项目 1. 2. 3. 项目结构 二. 构建数据模型 1. Startup类中配置EF Core MySql ...

  9. 如何在 .NETCore 中修改 QueryString ?

    咨询区 vcsjones: 我有一个绝对路径的 url 包含了 querystring,现在我想对 querystring 进行修改和添加,我不想生硬的用字符串提取,或者是 正则表达式,而且还有恶心的 ...

最新文章

  1. AI一分钟 | 谷歌员工对中国版搜索引擎提出抗议;华为麒麟980将于本月底发布...
  2. 中科院微生物所郭惠珊团队创建抗土传真菌黄萎病的陆地棉种质
  3. head first python 第二版 中文版-Head First Python 中文版
  4. dns网络服务的搭建和配置
  5. leetcode 454. 四数相加 II c语言
  6. CAN 总线 之一 总线拓扑、物理电平、发展史 详解
  7. 网络知识:电脑无线网连接不上问题汇总!
  8. 深度学习(六十四)Faster R-CNN物体检测
  9. requestmapping中path与value区别_1、Spring注解之@RequestMapping
  10. Laravel 5 测试用例 记录
  11. 一些mootools的资源
  12. RIME中州韵输入法词库扩充(搜狗词库,QQ拼音词库,清华词库,拆字词库U模式等)
  13. 高数 | 【多元函数微分学】如何判断二元微分式是否为全微分
  14. pycharm(Idea)破解到2100年
  15. iOS 图像选取器UIImagePickerController
  16. 小米6MIUI稳定版安装谷歌相机
  17. 【ubuntu】搭建lamp架构
  18. Spring Cloud Stream报错:Invalid bean definition with name:bean definition with this name already exist
  19. invalidate()不起作用
  20. 第八篇order订单专题(5)限价止损单、跟踪止损单、跟踪限价止损单讲解

热门文章

  1. docker Failed to get D-Bus connection 报错
  2. 【个人笔记】关于IO类中流的整理
  3. [杭电ACM]1012u Calculate e
  4. 重学数据结构004——栈的基本操作及实现(数组实现)
  5. ABP vNext微服务架构详细教程——身份管理服务
  6. 【汇总】多种方法教你绕过 TPM 2.0 安装 Windows 11 操作系统
  7. DotNetCommon-搜集.neter开发常用的功能
  8. 如何在 ASP.Net Core 中使用 HTTP.sys WebServer ?
  9. EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录
  10. 生态和能力是国内自研操作系统发展的关键