在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 ...
随机推荐
- Nginx warn:an upstream response is buffered to a temporary file
我通过nginx下载文件,error.log中出现如下警告日志:warn:an upstream response is buffered to a temporary file . 虽然网上各种例 ...
- Holmos框架
一.Holmos介绍--简介 Holmos-webtest是一个居于selenium2.0二次封装的开源框架,采用Page-Object模式去组织页面结构,同时支持多维度的页面元素定位方式,同时还继承 ...
- 解决StrToDateTime()不是有效日期类型的问题
方法一: function GetDateFormat():string; var SysFrset: TFormatSettings; begin Result:=''; GetLocaleForm ...
- WEB程序设计 第7版
WEB程序设计 第7版 D11章基础知识1.1internet简介1.1.1起源1.1.2internet的含义1.1.3ip地址1.1.4域名1.2万维网1.2.1起源1.2.2web还是int ...
- vue-cli3用图形化的方式创建项目
Vue脚手架可以快速生成Vue项目基础的架构. A.安装3.x版本的Vue脚手架: npm install -g @vue/cli B.基于3.x版本的脚手架创建Vue项目: 1).使用命令创建Vue ...
- https本地自签名证书添加到信任证书访问
1.背景 本文适用于基于https(http+ssl)的网站通信.本地调试等,上线是请寻找免费 ssl证书申请. 本地调试过程中,一些特殊的场景需要我使用http+ssl通信,比如在Chrome中使用 ...
- OCR(Optical Character Recognition)算法总结
https://zhuanlan.zhihu.com/p/84815144 最全OCR资料汇总,awesome-OCR
- Centos7安装部署MongoDB教程
安装方式: RPM包安装 安装步骤: 一.下载RPM包 下图是需要注意的事项.其一选择MongoDB的社区版本,默认是企业版本.其二,选中版本后,在下方会出现下载地址,直接复制下载即可 二.安装并查 ...
- 【ARM-Linux开发】OpenACC并行编程实战笔记
今年运气比较好,学了cuda之后,了解到了gpu的另两种使用语言opencl和openacc, opencl(Open Computing Language ,开放计算语言)是面向异构系统的并行编程 ...
- spark + hive
1.如何让 spark-sql 能够访问hive? 只需将hive-site.xml 放到 spark/conf 下即可,hive-site.xml 内容请参照hive集群搭建 2.要在spark 代 ...