AutoMapper基本使用

2023-10-27

导包
AutoMapper
AutoMapper.Extensions.Microsoft.DependencyInjection

假如需要将Student映射为StudentCopy

namespace WebApplication14
{
    public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
    }
    public class StudentCopy
    {
        public string FullName { get; set; }
        public int Age { get; set; }
        public string Sex { get; set; }
    }
}

新建一个配置类,用于指明映射关系,谁映射到谁

using AutoMapper;

namespace WebApplication14.Profiles
{
    public class MapperProfile : Profile
    {
        public MapperProfile()
        {
            // source -> target
			//CreateMap<Student, StudentCopy>()
			
			//.ForMember非必须,当两个类需要映射的属性名称不一致时可以使用此方法,来指定哪个属性应该映射为哪个属性,例如此处Student.Name需要映射为StudentCopy.FullName
            CreateMap<Student, StudentCopy>().ForMember(dest => dest.FullName, option => option.MapFrom(source => source.Name));
            
        }
    }
}

在Startup添加AutoMapper服务

services.AddAutoMapper(typeof(Startup));

之后从容器中获取AutoMapper服务并使用即可
例如:_mapper.Map<StudentCopy>(student)

using AutoMapper;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;

namespace WebApplication14.Controllers
{
    [ApiController]
    [Route("[controller]/[action]")]
    public class WeatherForecastController : ControllerBase
    {
        private readonly IMapper _mapper;

        public WeatherForecastController(IMapper mapper)
        {
            _mapper = mapper;
        }

        [HttpGet]
        public string Test()
        {
            Student student = new()
            {
                Name = "张三",
                Age = 18,
                Sex = "男"
            };

            var studentCopy = _mapper.Map<StudentCopy>(student);

            return JsonConvert.SerializeObject(studentCopy);
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AutoMapper基本使用 的相关文章

随机推荐

  • Python第九、十课

    枭 Python第九 十课 今天讲解了Python的 函数参数类型 变量作用域 函数参数类型 默认值参数 规则 在定义带有默认值参数的函数时 默认值参数必须全部出现在位置参数右侧 且任何一个默认参数右边都不能出现位置参数 默认值参数只在第一
  • 【云原生之kubernetes实战】kubernetes集群的HPA弹性伸缩

    云原生之kubernetes实战 kubernetes集群的HPA弹性伸缩 一 HAP介绍 1 HPA简介 2 HPA的实现原理 3 HPA自动伸缩示意图 4 HPA中影响 Pod 数量的因素 5 HPA改善服务的方式 二 检查本地k8s环
  • python学习主要应该学些什么

    近几年 python 正在成为最受欢迎的编程语言之一 无论是软件开发还是机器学习 python 都能够处理得游刃有余 人们喜欢使用 python 语言是因为它非常容易 相比于 c 语言和 java 等语言 它开发效率更高 它有着丰富的第三方
  • centos7安装或卸载RabbitMQ 3.8.4+Erlang 23.0详细步骤

    参考博客 Linux CentOS 7 下RabbitMQ的安装与配置 风萧萧1999的博客 CSDN博客 安装前准备 1 检查RabbitMQ Erlang版本 https www rabbitmq com which erlang ht
  • 【解决】使用mybatis解决sql报错: Parameter index out of range (1 > number of parameters, which is 0)

    当我们运用ssm框架做项目 并且要通过mybatis来做模糊查询时 sql语句中where条件语句 like后面 要用 like 条件名 而不是平常做where 时的like 条件名
  • InceptionNext实战:使用InceptionNext实现图像分类任务(一)

    文章目录 摘要 安装包 安装timm 安装 grad cam 数据增强Cutout和Mixup EMA 项目结构 计算mean和std 生成数据集 摘要 论文翻译 https blog csdn net m0 47867638 articl
  • wavefronts

    https www g truc net post 0597 html https michaldrobot com 2014 04 01 gcn execution patterns in full screen passes https
  • 力扣刷题记录(三)

    1084 销售分析III Create table If Not Exists Product product id int product name varchar 10 unit price int Create table If No
  • 机器学习——numpy逻辑回归(手写数字识别)

    二分类 识别1 7 import numpy as np import struct import matplotlib pyplot as plt import os from PIL import Image from sklearn
  • timm库安装

    按理来说 conda config append channels conda forge conda install timm 更新timm版本 pip install timm 0 5 4 python3 8 pytorch 1 11
  • HTTP与TCP的区别和联系

    https blog csdn net u013485792 article details 52100533 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别 希望通过自己的浅显理解能对初学者有所帮助 一 基
  • Kaggle入门——Titanic+随机森林(调参)+逻辑回归

    本博客记录一下自己的Kaggle入门题目 Titanic 只弄了一天 特征工程做得比较草率 结果只有0 76 不过主要是为了体验一下Kaggle竞赛的流程 以及熟悉一下Kaggle的使用 目录 1 题目相关 2 特征工程 3 随机森林 调参
  • 2021-09-08 PuTTY & Xftp-5使用密钥连接服务器

    PuTTY Xftp 5使用密钥连接服务器 所需材料 Xftp 5操作 PuTTY操作 所需材料 Xftp 5 PuTTY 密钥 服务器IP 用户名和密码 Xftp 5操作 新建会话 输入会话名称 主机IP 选择SFTP协议 方法选择Pub
  • 用python输出0到100所有能被3整除的数字_python: 输出 1~100 之间不能被 7 整除的数,每行输出 10 个数字,要求应用字符串格式化方法美化输出格式。...

    输出 1 100 之间不能被 7 整除的数 j 0 for i in range 1 101 遍历1 100取值 定义为变量 i if i 7 0 找出不能被 7 整除的数 print 3d format i end Format格式化输出
  • 伏秒积和安秒积

    伏秒平衡原则 伏秒平衡原则 在稳态工作的开关电源中电感两端的正伏秒值等于负伏秒值 安秒平衡原则 在稳态工作的开关电源中电容两端的正安秒值等于负安秒值 电容两端的电压不能突变 当电容足够大时 可认为其电压不变 电感中的电流不能突变 当电感足够
  • ./configure –prefix 命令用法

    在Linux上编译安装软件时 经常遇到 configure prefix usr这个命令 configure prefix 是什么意思呢 下面简单介绍一下 configure prefix 的用法 源码的安装一般由有这三个步骤 配置 con
  • 使用valgrind检查内存问题并且输出报告

    valgrind内存泄漏分析 是在linux中检查内存泄漏的工具 当程序编写完之后我一般都会使用它来检查一次内存问题 基本上能杜绝服务器的内存泄漏问题 当然是面对C C 这样的语言的 使用方式就是将程序编译好 然后通过valgrind来启动
  • iOS内存管理之autorelease

    当你需要延迟调用release方法的时候会使用autorelease 如 NSString fullName NSString string NSString alloc initWithFormat self firstName self
  • 基础练习 矩阵乘法

    问题描述 给定一个N阶矩阵A 输出A的M次幂 M是非负整数 例如 A 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N M 1 lt N lt 30 0 lt M lt 5 表示矩阵A的阶数和要求的幂数 接下
  • AutoMapper基本使用

    导包 AutoMapper AutoMapper Extensions Microsoft DependencyInjection 假如需要将Student映射为StudentCopy namespace WebApplication14