1.AutoMapper简单介绍[通俗易懂]

1.AutoMapper简单介绍[通俗易懂]官网:http://automapper.org/ 源码:https://github.com/AutoMapper/AutoMapper NUGET安装: PM> Install-Packag

1.AutoMapper简单介绍

官网:http://automapper.org/

源码:https://github.com/AutoMapper/AutoMapper

NUGET安装:

PM> Install-Package AutoMapper

代码100分

AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,一般用于ViewModel模式和跨 服务范畴。

AutoMapper给用户提供了便捷的配置API,就像使用约定来完成自动映射那样。

AutoMapper包含以下功能:

平展、投影、配置验证、列表和数组、嵌套映射、自定义类型转换程序、自定义值转换程序 、自定义值格式程序 、Null值替换

AutoMapper是一款单向映射器。

这意味着它并没有内建映射对象支持来回写至原始源,除非用户在更新映射对象之后明确地创建逆向反射。

这需要 通过设计完成,因为让DTO回写到,比方说:域模型或其他东西,就会更改它的持久性,同时人们也认为它是反模式的。在这种解决方案中,命令消息在双向映射 中往往是更好的选择。

然而,在某些特定环境中,有人可能会为双向映射辩解,比如:非常简单的CRUD应用程序。一个支持双向映射的框架就是Glue。

AutoMapper 解决什么需求

话不多说,上代码,共有两个实体类

代码100分class People
    {
        public string Name { get; set; }
        public int Age { get; set; }
      
    }
class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

假设在项目中有此需求,将两个类的数据进行交换,我们通常的做法是

static void Main(string[] args)
    {
       People p = new People() { Name = "text1", Age = 12 };
       Person person = new Person();
    
       person.Name = p.Name;
       person.Age = p.Age;
​
       Console.WriteLine(person.Name);
       Console.WriteLine(person.Age);
       Console.Read();
     }

但是我们发现,这样费力不讨好,而且我们还发现,这两个类里面的属性其实是近似的,所以,AutoMapper就是为了应对这种情景

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10357.html

(0)
上一篇 2022-12-29
下一篇 2022-12-29

相关推荐

  • mysql设计表注意事项_数据库设计需要考虑的问题

    mysql设计表注意事项_数据库设计需要考虑的问题下面探讨的数据库为MySQL 存储引擎为innodb因为这是最常见的,使用最多的数据库和引擎 什么是页分裂? 这是因为聚簇索引采用的是平衡二叉树算法,而且每个节点都保存了该主键所对应行的数据,假设插…

    2023-03-08
    99
  • oracle实例状态

    oracle实例状态oracle数据库实例启动过程分三个步骤,分别是启动实例,加载数据库,打开数据。 1.NOMOUNT模式:这种模式只会创建实例,不会打开任何的数据文件,用户要以sysdba的身份登录,才具有关闭和启动

    2022-12-26
    98
  • Oracle学习(七) — PL/SQL(二) 游标、储存过程、自定义函数、触发器

    Oracle学习(七) — PL/SQL(二) 游标、储存过程、自定义函数、触发器1、PL/SQL — 游标 1.1、什么是游标 当在PL/SQL中使用SQL语句时,Oracle会为其分配上下文区域,这是一段私有的内存区域,用于暂时保存SQL语句影响到的数据。游标是指向这段内存…

    2023-03-08
    113
  • 使用jsfilter函数的有效性

    使用jsfilter函数的有效性在前端开发中,为了保证网站安全性,常常需要对用户输入的数据进行过滤和转换。jsfilter函数是其中常用的一种,它可以进行HTML或者JavaScript转义操作,有效防止XSS攻击和代码注入等问题。本文将从多个方面探讨jsfilter函数的有效性。

    2024-05-09
    20
  • 【巨杉数据库SequoiaDB】巨杉 Tech | SequoiaDB SQL实例高可用负载均衡实践[通俗易懂]

    【巨杉数据库SequoiaDB】巨杉 Tech | SequoiaDB SQL实例高可用负载均衡实践[通俗易懂]1 前言 在应用程序中,应用配置连接的数据库IP地址和端口号都是固定一个的,当所属IP地址的服务器宕机后,需要人为手工更改IP地址切换数据库服务器。同时当应用接收到成千上万的并发 http 请求时,…

    2023-02-09
    96
  • TiDB 的“破坏之王”:PingCAP 测试团队 | PingCAP 招聘季「建议收藏」

    TiDB 的“破坏之王”:PingCAP 测试团队 | PingCAP 招聘季「建议收藏」数据库存储了公司的数据,是公司的最重要资产之一。正确性和稳定性是数据库最重要的特性。测试团队之于 TiDB 是一个“破坏之王”的角色,团队的使命是炼成更高、更快、更强的 “无敌风火轮” 技能。在这篇…

    2023-03-04
    102
  • Python log10函数的精度控制

    Python log10函数的精度控制对于科学计算或数据分析中常用的对数运算,Python中提供了log函数和log10函数。其中,log10函数是以10为底的对数函数,常用于计算pH值、震级、声级等问题。但在执行计算时,有时为了准确性,需要对结果的精度进行控制。本文将从以下几个方面讨论Python log10函数的精度控制。

    2024-01-21
    59
  • MVC三层架构「建议收藏」

    MVC三层架构「建议收藏」一、MVC和三层架构 什么是MVC? (1) MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计模式

    2023-02-06
    108

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注