说明:以下是使用过程中看到的其他博主写的,地址如下:

地址一:https://cloud.tencent.com/developer/article/1395155

地址二:https://www.cnblogs.com/yanwuming/p/9609887.html

我的项目是netcore SDK2.2版本,开发软件vs2017;

首先告诉大家,很不幸的是:上面两种方法都试过了,但是都失败了,不知道是不是我自己哪里写错了,或者人品,或者状态不对吧,哎!欲哭无泪~~~~~

而且我这边在使用的时候,提示已经弃用了,不知道有没有遇到跟我同样问题的朋友。

当时心里也是很不爽的,好吧,后面查阅资料,这样写就OK了:O(∩_∩)O哈哈~
services.AddAutoMapper(typeof(ServiceProfile));
ServiceProfile.cs是我写的一个测试类,继承Profile,代码如下:
  public class ServiceProfile : Profile
{
public ServiceProfile()
{
CreateMap<OrderInfo, UserInfoDto>()
.ForMember(des=>des.UserName,opt=>opt.MapFrom(src=>src.Name))
.ForMember(des=>des.CreateTime,opt=>opt.MapFrom(src=>src.CreateTime.ToString("yyyy-MM-dd hh:mm:ss")))
;
}
}

  

有两个测试类实体OrderInfo和UserInfoDto,这两个就随便写了,大家可以自行测试!

最后,使用时如下:

 private readonly IQueryBll queryBll;
private IMapper mapper;
public MongoQueryController(IQueryBll queryBll, IMapper mapper) { this.queryBll = queryBll;
this.mapper = mapper;
}
public IActionResult Index()
{
return View();
} [HttpGet]
[HttpPost]
public async Task<List<UserInfoDto>> QueryByName(string userName) {
if (string.IsNullOrEmpty(userName)) {
return new List<UserInfoDto>();
} var res = await this.queryBll.Query(userName);
return this.mapper.Map<List<OrderInfo>, List<UserInfoDto>>(res);
}

 结果居然成功了:

数据库测试数据:

结果:

总结一下,就3步,不知道是不是新的版本更好使用了吗;

第一步:安装引用

install-package AutoMapper

install-package AutoMapper.Extensions.Microsoft.DependencyInjection

第二步:注册

在StartUp.cs 的ConfigureServices方法中注册:

services.AddAutoMapper(typeof(ServiceProfile));  //ServiceProfile为你Mapper的类

第三步:调用

属性/构造函数(测试过了,这两种调用都可以) 注入调用(如上实例)。

不知道大家发现没有,这样写还有一个弊端,就是,当有多个l类似ServiceProfile.cs时,我们难道要一个一个写吗?这样岂不是太累,而且容易忘记,应该有更好的方法,不过目前还没有写对,大家如果有好的建议感谢大家留言探讨;

上述“地址一”的大神其实写的就是那个意思了,反射找到Profile类型,但是我这边不知道怎么的没有成功,有好方法的希望大家一起探讨!

												

netcore使用AutoMapper的更多相关文章

  1. Asp.NetCore之AutoMapper进阶篇

    应用场景 在上一篇文章--Asp.NetCore之AutoMapper基础篇中我们简单介绍了一些AutoMapper的基础用法以及如何在.NetCore中实现快速开发.我相信用过AutoMapper实 ...

  2. Asp.NetCore之AutoMapper基础篇

    应用场景 现在由于前后端技术的分离,后端程序员在使用ORM框架开发后台API接口的时候,往往会将数据库的"数据模型"直接提供给前端.而大多数时候,可能这些数据并不能够满足前端展示的 ...

  3. .NetCore 使用AutoMapper

    添加引用 AutoMapper AutoMapper.Extensions.Microsoft.DependencyInjection 注册服务 services.AddAutoMapper(); 配 ...

  4. AutoMapper在asp.netcore中的使用

    # AutoMapper在asp.netcore中的使用  automapper 是.net 项目中针对模型之间转换映射的一个很好用的工具,不仅提高了开发的效率还使代码更加简洁,当然也是开源的,htt ...

  5. NetCore+AutoMapper多个对象映射到一个Dto对象

    目录 一. 定义源映射类和被映射类DTO二.注入AutoMapper三.配置映射四.写测试 一.定义源映射对象 为了体现AutoMapper映射特性,在SocialAttribute中的Name属性没 ...

  6. NetCore AutoMapper的封装

     需要引用AutoMapper的Nuget包  如果需要忽略某个字段就在字段上面打标签如下:  [IgnoreMap] public string IgnoreValue { get; set; } ...

  7. netcore 2.2 封装 AutoMapper

    在上篇中我们通过创建一个类并继承autoMapper的Profile类 public class Mappings : Profile { public Mappings() { CreateMap& ...

  8. netcore 2.2 使用 AutoMapper 实现实体之间映射

    一.什么是AutoMapper? AutoMapper是一个简单的对象映射框架(OOM),将一个对象映射到另一个对象. 二.AutoMapper的好处 以前的时候我们将DTO对象转换为Model对象时 ...

  9. .NetCore学习笔记:四、AutoMapper对象映射

    什么是AutoMapper?AutoMapper是一个简单的小型库,用于解决一个看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码.这种类型的代码是相当沉闷和无聊的写,所以为什么不发明一个工具来 ...

随机推荐

  1. Tomcat | 修改默认端口

    Tomcat安装目录下 conf 目录下 server.xml 找到 <Connector connectionTimeout="/> 修改其中port值即可

  2. XHTML 1.0 的三种 XML 文档类型 DOCTYPE

    XHTML 1.0 的三种 XML 文档类型 XHTML 1.0 规定了三种 XML 文档类型 XHTML 1.0 Strict <!DOCTYPE html PUBLIC "-//W ...

  3. 529 Minesweeper 扫雷游戏

    详见:https://leetcode.com/problems/minesweeper/description/ C++: class Solution { public: vector<ve ...

  4. Node.Js的Module System 以及一些常用 Module

    Node.Js学习就按照这本书的流程来. 在第7章结束与第10章结束时分别自己出一个小项目练练手.Node.Js的入门学习计划是这样. 目录:, QQ:1045642972 欢迎来索书以及讨论Node ...

  5. elasticsearch-sql安装

    Github地址:https://github.com/NLPchina/elasticsearch-sql elasticsearch-sql插件可以方便我们使用SQL语言来对elasticsear ...

  6. Android设计模式——MVP

    一.什么是MVP MVP:全称 Model-View-Presenter. MVP框架由3部分组成:View层负责显示,Presenter层负责逻辑处理,Model层提供数据. View:负责绘制UI ...

  7. AJPFX总结Collection集合(上)

    出现集合类的原因 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一个方式. 数组和集合都是容器有何不同? 数组虽也可存储对象,但长度 ...

  8. Scala基础篇-05求值策略

    Scala的求值策略有2种: call by value call by name 如何区分? 例子: def bar(x:Int,y: => Int) = def loop(): Int=lo ...

  9. Clean Code 第十章 : 类

    最近的CleanCode读到了第十章.这一张主要讲了如何去构造一个类,感觉的CleanCode至此已经不仅仅是单纯的讲如何'写'出漂亮的代码,而是从设计方向上去构造出好的代码了. 本章节主要讲了: * ...

  10. 洛谷 P1006 传纸条

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...