在DoNetCore MVC 中如何使用AutoMapper
刚开始,按照在donet mvc 的方法写了一遍,发现行不通啊,于是百度了一下,找到这么一篇 https://stackoverflow.com/questions/41284349/automapper-error-saying-mapper-not-initialized
动手开干 ,具体流程
1、Nuget 引入包
Install-Package
AutoMapper.Extensions.Microsoft.DependencyInjection
2、创建我们的源数据实体,创建我们的目标实体
这是我的项目目录信息,其中红框中就是我们的源实体和目标实体
3、注入服务
在Startup.cs 类中 ConfigureServices 方法中最后一行 添加如下代码:
services.AddAutoMapper();
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
}); //services.AddTransient<IAdminBusinessLoginService, AdminBusinessLoginService>(); var redisconn = Configuration.GetSection("RedisConnectionStrings");
services.AddOptions();
services.Configure<RedisConnectionStrings>(redisconn); var opt = Configuration.GetSection("RedisConnectionStrings"); //Models.AutoMapperHelper.AutoMapperConfig.RegisterAutoMapper(); services.AddSingleton<ICache, ICCSReidsiHelper>(); services.AddAssembly("DSErpService");
services.AddAssembly("IDSErpService");
//注入上下文对象
var sqlConnection = Configuration.GetConnectionString("SchoolConnection");
services.AddDbContext<Db>(op => op.UseSqlServer(sqlConnection)); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
//前台用户cookie服务
.AddCookie(UserAuthorizeAttribute.UserAuthenticationScheme, options =>
{
options.LoginPath = "/Login/Index";
options.LogoutPath = "/Login/LogOff";
options.AccessDeniedPath = new PathString("/Error/Forbidden");//拒绝访问页面
options.Cookie.Path = "/";
}); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddAutoMapper();
}
如图:
4、创建我们的映射对象
这里直接上代码:
public class CategoryProfiles : Profile
{
public CategoryProfiles()
{
CreateMap<BusinessCategory, CategoryDto>().ReverseMap()
.ForMember(a => a.Id, b => b.MapFrom(c => c.Id))
.ForMember(a => a.CategoryName, b => b.MapFrom(c => c.CategoryName))
.ForMember(a => a.StatusMark, b => b.MapFrom(c => c.StatusMark));
}
}
5、实现
[Route("category")]
public class categoryController : Controller
{
/// <summary>
/// 获取用户缓存信息
/// </summary>
private ICache cache;
/// <summary>
/// 分类服务管理
/// </summary>
private ICategoryService categoryService;
private readonly IMapper _mapper;
public categoryController(ICache _cache, ICategoryService _service, IMapper mapper)
{
this.cache = _cache;
this.categoryService = _service;
this._mapper = mapper;
} [HttpGet("get-pagelist")]
public async Task<JsonResult> GetCategoryPageList(int pageindex, int pagesize)
{
return await Task.Run<JsonResult>(() =>
{
var totalcount = ;
var reslist = this.categoryService.GetCategroryList(null, pageindex, pagesize, out totalcount);
return Json(new
{
code = ,
msg = "",
count = totalcount,
data = this._mapper.Map<List<CategoryDto>>(reslist.data)
});
});
}
}
说明:
this._mapper.Map<List<CategoryDto>>(reslist.data) 我这里是集合映射到集合 ,
this._mapper.Map<T>(T);
this._mapper.Map<List<T>>(listT);
在DoNetCore MVC 中如何使用AutoMapper的更多相关文章
- AutoMapper在MVC中的运用01-配置、使用、单元测试、举例
MVC中,如果想在Domain Model和View Model之间建立映射,用AutoMapper是一个不错的选择.不仅如此,AutoMapper能在不同对象之间建立映射,比如string与int类 ...
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
ADO.NET 一.ADO.NET概要 ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库 二.ADO.NET的组成 ①System.Data → DataTable, ...
- MVC 中的 ViewModel
此文章总结自:http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applica ...
- MVC中验证码
MVC中验证码的实现(经常用,记录备用) 一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭 ...
- MVC中验证码的实现(经常用,记录备用)
一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 二 正文 Ok,我们的验证码开始,这篇文章 ...
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- Asp.Net MVC中使用StreamReader读取“Post body”之应用场景。
场景:有三个市场(Global.China.USA),对前台传过来的数据有些验证需要细化到每个市场去完成. 所以就出现了基类(Global)和派生类(China.USA) 定义基类(Global)Pe ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
随机推荐
- Supervisor进程守护工具的使用
Supervisor是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程. 官网:http://supervisord.org/ G ...
- [转]manjaro安装vmware虚拟机
全球领先的信息与通信解决方案供应商华为,近日面向全球ICT从业者,以及有兴趣掌握ICT相关知识的人士,免费推出其图形化网络仿真工具平台—eNSP.该平台通过对真实的网络设备的仿真模拟,帮助广大ICT从 ...
- (转)Ngx_Lua使用分享
原文:https://www.cnblogs.com/yanzi-meng/p/9450999.html ngx_lua 模块详细讲解(基于openresty)---https://www.cnblo ...
- spring与springMVC的父子容器关系
背景和概述 在spring与springMVC中通过IOC可以管理bean对象,有两个配置文件可以配置ioc spring的配置文件applicationContext.xmlspringMVC的配置 ...
- 配置cisco设备记录用户命令
R1(config)# aaa new-model R1(config)# aaa accounting commands 0 default start-stop group local R1(co ...
- SDN实验---Mininet实验(玩转流表)
一:实验目的 (一)案例目的 (二)实验内容 (三)网络拓扑结构 二:OpenFlow流表实验准备 (一)使用Python设置网络拓扑 --- tree_topo.py from mininet.to ...
- axios get,post请求时带headers
axios post请求时带headers: axios.post("http://xxx.com/xxx/xxx/xxx?", { 'queslistid': this.kemu ...
- 【Linux基础】vim如何显示文件名称
前言 使用vim的时候有时候需要查看文件路径或者名称,本文对此进行记录. 操作过程 一般模式下 method1: :f method2: 快捷键CTRL+g/G(大小写均可); method3: 查看 ...
- C#反射机制(转自Binfire博客)
一:反射的定义 审查元数据并收集关于它的类型信息的能力.元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等. Sys ...
- python数据分析3之标签化