为什么使用AutoMapper

这篇具有很好参考价值的文章主要介绍了为什么使用AutoMapper。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么使用AutoMapper,.net core,c#,automapper
为什么使用AutoMapper,.net core,c#,automapper

using AutoMapper;
using Zrj.TryUseAutoMapper.Model.Entity;
using Zrj.TryUseAutoMapper.Model.DTO;
using Zrj.TryUseAutoMapper.Model.CustomerProfile;

namespace TryUseAutoMapper
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");

            #region 概念
            /*
             * 为什么使用AutoMapper
             * 当后端的实体类/模型和前端要求有出入/有些字段不方便带到前端时,解耦分离
             */
            #endregion

            /*当只转换少数类的写法*/
            {
                var mapperConfiguration = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap<Orders, DTO_Orders>();
                });

                var mapper = mapperConfiguration.CreateMapper(); /*等同于*/ //IMapper mapper = mapperConfiguration.CreateMapper();
                DTO_Orders orders = mapper.Map<Orders, DTO_Orders>(new Orders()
                {
                    CustomerId = 1,
                    CustomerEmail = "*****@163.com",
                    OrderMoney = 1_000_000
                });

                /*
                 * 无法获取到 orders.OrderMoney  
                 */
                Console.WriteLine(orders.CustomerEmail);
            }

            /*
             * 当转换部分的写法
             */
            {

                var mapperConfiguration = new MapperConfiguration(cfg =>
                {
                    //cfg.CreateMap<Orders, DTO_Orders>();
                    cfg.AddProfile<CustomerProfile>();
                });

                var mapper = mapperConfiguration.CreateMapper(); /*等同于*/ //IMapper mapper = mapperConfiguration.CreateMapper();
                DTO_Orders orders = mapper.Map<Orders, DTO_Orders>(new Orders()
                {
                    CustomerId = 1,
                    CustomerEmail = "*****@163.com",
                    OrderMoney = 1_000_000
                });

                /*
                 * 无法获取到 orders.OrderMoney  
                 */
                Console.WriteLine(orders.CustomerEmail);
            }

            Console.ReadKey();

        }

    }
}

类库
为什么使用AutoMapper,.net core,c#,automapper文章来源地址https://www.toymoban.com/news/detail-627107.html

namespace Zrj.TryUseAutoMapper.Model.Entity
{
    public class Orders
    {
        public string Order { get; set; } = string.Empty;
        public int CustomerId { get; set; }
        public string CustomerName { get; set; } = string.Empty;
        public string CustomerEmail { get; set; } = string.Empty;
        public string CustomerPhone { get; set; } = string.Empty;
        public string CustomerCity { get; set; } = string.Empty;
        public string CustomerRegion { get; set; } = string.Empty;
        public string CustomerPostalCode { get; set; } = string.Empty;
        public string CustomerCountry { get; set; } = string.Empty;
        public string CustomerState { get; set; } = string.Empty;
        public decimal OrderMoney { get; set; }

    }
}
namespace Zrj.TryUseAutoMapper.Model.DTO
{
    public class DTO_Orders
    {
        public string Order { get; set; } = string.Empty;
        public string CustomerId { get; set; } = string.Empty;
        public string CustomerName { get; set; } = string.Empty;
        public string CustomerEmail { get; set; } = string.Empty;
        public string CustomerPhone { get; set; } = string.Empty;
        public string CustomerCity { get; set; } = string.Empty;
        public string CustomerRegion { get; set; } = string.Empty;
        public string CustomerPostalCode { get; set; } = string.Empty;
        public string CustomerCountry { get; set; } = string.Empty;
        public string CustomerState { get; set; } = string.Empty;

    }
}
using AutoMapper;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Zrj.TryUseAutoMapper.Model.DTO;
using Zrj.TryUseAutoMapper.Model.Entity;

namespace Zrj.TryUseAutoMapper.Model.CustomerProfile
{
    public class CustomerProfile : Profile
    {
        public CustomerProfile()
        {

            base.CreateMap<Orders, DTO_Orders>();
            /*以此类推*/
            //base.CreateMap<Orders, DTO_Orders>();

        }

    }
}

到了这里,关于为什么使用AutoMapper的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么 Spark UI 上显示的 Executor Cores 与 Yarn 上的 vCore 数量不符?

    你可能会在自己的集群上观察到:Spark UI 上显示的 Executor Cores 与 Yarn 上的 vCore 数量是不符的,本文将会给出详细解释。本文和《为什么我的集群一个 Spark Executor / Yarn Container 只有一个vCore?》一文有比较密切的关系,建议先阅读一下此文,本文可以看作是这篇文章的“补充”

    2024年02月11日
    浏览(39)
  • C++这么难,为什么我们还要用C++?C++ Core Guidelines解析给了我答案

    C++ 是一门强大而复杂的编程语言,它有其独特的应用场景和优势,尽管它可能在学习和使用上有一些挑战,但仍然被广泛采用的原因有很多,尽管 C++ 有其优势,但它也确实有一些复杂性和潜在的陷阱,因此在选择使用它时需要权衡。对于一些应用场景,其他编程语言,如Py

    2024年02月09日
    浏览(36)
  • 为什么要使用卷积

    1. 卷积这个名词是怎么解释?“卷”是什么意思?“积”又是什么意思? 卷积的“卷”,指的的函数的翻转,从  g(t)  变成  g(-t)  的这个过程;同时,“卷”还有滑动的意味在里面(吸取了网友李文清的建议)。如果把卷积翻译为“褶积”,那么这个“褶”字就只有翻转的

    2024年02月09日
    浏览(34)
  • 为什么要使用线程池

    线程池主要是 控制运行的线程的数量 ,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。 Java线程的 创建 非常昂贵,需要 JVM 和 OS (操作系统)配合

    2023年04月09日
    浏览(45)
  • RABBITMQ为什么要使用

    面试官问这个问题,肯定是想知道你们公司有一个什么场景需要使用到这个Mq,这个场景有一个什么技术挑战导致必须要用这个mq,用了这个mq之后有什么好处。mq经典的使用场景有 解耦,异步,削锋 。 异步通信: 当一个系统收到请求,需要在自己系统处理数据,处理完后,

    2024年02月04日
    浏览(40)
  • 为什么要使用Token

            我们知道,http协议是一种无状态的协议,这就意味着当用户向我们的应用提供了用户名和密码进行用户认证,那么在下一次登录的时候,用户还要再进行验证,因为根据http协议,浏览器并不知道是谁发出的请求,所以为了能够让浏览器识别出是哪个用户发出的请求

    2024年02月09日
    浏览(33)
  • ChatGPT为什么使用强化学习

    最近出现很多ChatGPT相关论文,但基本都是讨论其使用场景和伦理问题,至于其原理,ChatGPT在其主页上介绍,它使用来自人类反馈的强化学习训练模型,方法与InstructGPT相同,只在数据收集上有细微的差别。 那么,InstructGPT和ChatGPT为什么使用强化学习呢?先看个示例: 先不论

    2023年04月13日
    浏览(34)
  • 为什么要使用数据库?

    新星计划,等你来造,一起学习进步! 7月3日-7月15日期间,完成计划任务,完成打卡赢好礼,活动报名链接如下:点击跳转 活动奖励: ❀【新秀奖】新注册用户发布第一篇文章(500字以上)获得电子【新秀勋章】; ❀【基础奖】完成任务挑战用户可获专属电子勋章(潜力新

    2024年02月06日
    浏览(40)
  • 为什么要使用 transaction data?

    可能你也注意到了,在跟智能合约交互(例如发送 token)时,你的事务会自动包含 input data(“输入数据”)。在 MyCrypto 钱包界面,这些数据有个简单的标签:“Data(数据)” —— 它是做什么的呢? 这篇文章就是从技术上解释事务输入数据是怎么一回事,它实质是什么,又

    2023年04月09日
    浏览(24)
  • 我为什么使用Linux做开发

    目前市面上主流的桌面操作系统在大多数人眼里只有Windows和MacOS,那为什么我没选择它们两呢? 首先,不选MacOS的原因,就是太贵。当然这是我的原因不是苹果的原因,我最早使用Linux写代码的时候是2018年,那时候刚毕业上班不久,根本买不起Mac(虽然现在也觉得有点贵)。

    2024年03月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包