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
AutoMapper在asp.netcore中的使用相关推荐
- 跟我一起学.NetCore之Asp.NetCore中集成Autofac扩展
前言 前两节针对.NetCore自带的依赖注入进行简要概述,对于日常开发的需求应该是能满足了,那为什么还需要引入第三方依赖注入组件呢,这里就从自带的依赖注入来分析,有什么样的需求满足不了?主要归纳为以 ...
- asp论坛回复功能怎么实现_在asp.netcore中使用中间件(middleware)实现api拦截及验证功能
本文只对api接口,header请求参数进行简单验证,起到抛砖引玉使用,需要深入验证,请自行扩展 项目目录结构如图 中间件类 using ApiMiddleware.Common.DataEnityM ...
- 壹佰文章总结| 关于ASP.NETCore的分享之路
公众号不让放外网链接,点击[阅读原文],去我的博客园,可以看对应的详细文章. (关于学习ASP.NET Core需要了解和掌握的知识点图) 一言不合就来图,各位博客园小伙伴大家好,感觉好久没有写文章了 ...
- ASP.NETCore学习记录(一)
ASP.NETCore学习记录(一) asp.net core介绍 Startup.cs ConfigureServices Configure 0. ASP.NETCore 介绍 ASP.N ...
- ASP.NETCore
0. ASP.NETCore 介绍 ASP.NETCore是一个新的开源和跨平台的框架,用于构建如Web应用.物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.ASP.NET C ...
- 4 angular 重构 项目_c# – 将Angular 4添加到ASP.NETCore项目中
我想在Visual Studio 2017中的ASP.NetCore 1.1项目中使用Angular 4(读作:* .csproj文件) 以前使用ASP.NET Core 1.0和Visual Stu ...
- 极简实用的Asp.NetCore模块化框架决定免费开源了
背景 在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对ABP VNext痛下狠心,研究一段时间后,不得不说 ABP VNext的代码层面很规范,也都是一些最佳实践,开发出一个模块 ...
- Asp.NetCore MVC Web 应用
Asp.NetCore MVC 与 普通的MVC 基本一致, 只是代码结构稍有改动 一.创建项目 1. 2. 3. 项目结构 二. 构建数据模型 1. Startup类中配置EF Core MySql ...
- 如何在 .NETCore 中修改 QueryString ?
咨询区 vcsjones: 我有一个绝对路径的 url 包含了 querystring,现在我想对 querystring 进行修改和添加,我不想生硬的用字符串提取,或者是 正则表达式,而且还有恶心的 ...
最新文章
- AI一分钟 | 谷歌员工对中国版搜索引擎提出抗议;华为麒麟980将于本月底发布...
- 中科院微生物所郭惠珊团队创建抗土传真菌黄萎病的陆地棉种质
- head first python 第二版 中文版-Head First Python 中文版
- dns网络服务的搭建和配置
- leetcode 454. 四数相加 II c语言
- CAN 总线 之一 总线拓扑、物理电平、发展史 详解
- 网络知识:电脑无线网连接不上问题汇总!
- 深度学习(六十四)Faster R-CNN物体检测
- requestmapping中path与value区别_1、Spring注解之@RequestMapping
- Laravel 5 测试用例 记录
- 一些mootools的资源
- RIME中州韵输入法词库扩充(搜狗词库,QQ拼音词库,清华词库,拆字词库U模式等)
- 高数 | 【多元函数微分学】如何判断二元微分式是否为全微分
- pycharm(Idea)破解到2100年
- iOS 图像选取器UIImagePickerController
- 小米6MIUI稳定版安装谷歌相机
- 【ubuntu】搭建lamp架构
- Spring Cloud Stream报错:Invalid bean definition with name:bean definition with this name already exist
- invalidate()不起作用
- 第八篇order订单专题(5)限价止损单、跟踪止损单、跟踪限价止损单讲解
热门文章
- docker Failed to get D-Bus connection 报错
- 【个人笔记】关于IO类中流的整理
- [杭电ACM]1012u Calculate e
- 重学数据结构004——栈的基本操作及实现(数组实现)
- ABP vNext微服务架构详细教程——身份管理服务
- 【汇总】多种方法教你绕过 TPM 2.0 安装 Windows 11 操作系统
- DotNetCommon-搜集.neter开发常用的功能
- 如何在 ASP.Net Core 中使用 HTTP.sys WebServer ?
- EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录
- 生态和能力是国内自研操作系统发展的关键