刚开始,按照在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的更多相关文章

  1. AutoMapper在MVC中的运用01-配置、使用、单元测试、举例

    MVC中,如果想在Domain Model和View Model之间建立映射,用AutoMapper是一个不错的选择.不仅如此,AutoMapper能在不同对象之间建立映射,比如string与int类 ...

  2. 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, ...

  3. MVC 中的 ViewModel

    此文章总结自:http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applica ...

  4. MVC中验证码

    MVC中验证码的实现(经常用,记录备用)   一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭 ...

  5. MVC中验证码的实现(经常用,记录备用)

    一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 二 正文 Ok,我们的验证码开始,这篇文章 ...

  6. .NetCore MVC中的路由(2)在路由中使用约束

    p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...

  7. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  8. Asp.Net MVC中使用StreamReader读取“Post body”之应用场景。

    场景:有三个市场(Global.China.USA),对前台传过来的数据有些验证需要细化到每个市场去完成. 所以就出现了基类(Global)和派生类(China.USA) 定义基类(Global)Pe ...

  9. 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

随机推荐

  1. tp使用ajaxReturn返回二维数组格式的字符串,前台如何获取非乱码

    参考: https://www.cnblogs.com/jiqing9006/p/5000849.html https://blog.csdn.net/zengxiangxuan123456/arti ...

  2. 面试突击(六)——JVM如何实现JAVA代码一次编写到处运行的?

    声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点 JVM是 JAVA Virtual Machine 三个英文单词的首字母缩写,翻译成中文就是Java虚 ...

  3. js---省略花括号{}的几种表达式

    在进行js的书写中,对于常见的if,for,while是可以简写,省略花括号{}的: var a = 10,b = 20; /** * if 简写 */ if(a > b) console.lo ...

  4. J-CUBE Appears at AVATAR Xprize at Geneva 2019

    2019年5月27日,瑞士日内瓦,Avatar Xprize发布会隆重举行.非常荣幸的是,J-CUBE也受邀参加此次大会. 关于Avatar Xprize项目的介绍 https://avatar.xp ...

  5. python获取文件路径

    摘自:https://blog.csdn.net/Poo_Chai/article/details/89764001 import os root_path = os.path.abspath(os. ...

  6. Ubuntu16.04安装Superset

    Superset 是Airbnb 开源的大数据可视化平台 其支持的datasource https://superset.incubator.apache.org/index.html?highlig ...

  7. (转载)基于比较的少样本(one/few-shoting)分类

    基于比较的方法 先通过CNN得到目标特征,然后与参考目标的特征进行比较. 不同在于比较的方法不同而已. 基本概念 数据集Omniglot:50种alphabets(文字或者文明); alphabet中 ...

  8. EasyNVR摄像机网页无插件直播方案H5前端构建之:通道内部搜索功能的实现方案与代码

    EasyNVR网页摄像机直播方案 EasyNVR是一款拥有完整.自主.可控知识产权,同时又能够具备软硬一体功能的安防互联网化流媒体服务器,能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络 ...

  9. JAVA中生成指定位数随机数的方法总结

    JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = ( ...

  10. DevOps-ISC,CSS,Prometheus,Ansible ,Terraform,zabbix

    https://www.terraform.io/ Terraform Use Infrastructure as Code to provision and manage any cloud, in ...