为什么使用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日
    浏览(56)
  • C++这么难,为什么我们还要用C++?C++ Core Guidelines解析给了我答案

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

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

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

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

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

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

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

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

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

    2024年02月04日
    浏览(51)
  • 为什么要使用数据库?

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

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

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

    2023年04月13日
    浏览(43)
  • RabbitMQ到底为什么要使用它?

    一个技术的衍生必然是为了解决现实出现的问题,在讲这个问题之前我们先了解一下传统开发中关于服务调用出现的问题(痛点)有哪些? 在多服务体系架构中,必然存在着 多个服务之间的调用关系 ,当用户提交了订单,订单服务会调用支付服务执行用户的金钱操作,执行

    2024年02月16日
    浏览(58)
  • kafka为什么尽量使用手动提交

    在 Kafka 中,消费者可以使用手动提交和自动提交两种方式来管理消费偏移量(offset)。它们之间的区别如下: 1. 手动提交 offset:    - 消费者通过调用 `commitSync()` 或 `commitAsync()` 方法手动提交消费偏移量。    - 手动提交 offset 需要显式地指定要提交的分区和偏移量。    

    2024年02月15日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包