AutoMapper官方文档(四)【扁平化(分割)映射】

AutoMapper基本用法 AutoMapper的基本用法AutoMapper的使用场景 AutoMapper的使用场景 AutoMapper是对象到对象的映射工具。在完成映射规则之后,AutoMapper可以将源对象转换为目标对象。 表现层于应用层之间是通过DTO来进行交互的,数据传输对象是没有行为的POCO对象,他的目的是为了对领域对象进行数据封装,实现层与层之间的数据传递。为何不直接将领域对象进行数据传递?因为领域对... 阅读详情

扁平化映射

对象-对象映射的一个常见用法是采用复杂的对象模型并将其扁平化为更简单的模型。 你可以采取一个复杂的模型,如:

public class Order
{
    private readonly IList<OrderLineItem> _orderLineItems = new List<OrderLineItem>();

    public Customer Customer { get; set; }

    public OrderLineItem[] GetOrderLineItems()
    {
        return _orderLineItems.ToArray();
    }

    public void AddOrderLineItem(Product product, int quantity)
    {
        _orderLineItems.Add(new OrderLineItem(product, quantity));
    }

    public decimal GetTotal()
    {
        return _orderLineItems.Sum(li => li.GetTotal());
    }
}

public class Product
{
    public decimal Price { get; set; }
    public string Name { get; set; }
}

public class OrderLineItem
{
    public OrderLineItem(Product product, int quantity)
    {
        Product = product;
        Quantity = quantity;
    }

    public Product Product { get; private set; }
    public int Quantity { get; private set;}

    public decimal GetTotal()
    {
        return Quantity*Product.Price;
    }
}

public class Customer
{
    public string Name { get; set; }
}

我们希望将这个复杂的Order对象变成一个更简单的OrderDto,其中只包含特定场景所需的数据:

public class OrderDto
{
    public string CustomerName { get; set; }
    public decimal Total { get; set; }
}

在AutoMapper中配置源/目标类型对时,配置程序会尝试将源类型的属性和方法匹配到目标类型的属性。 如果对于目标类型的任何属性,源类型中不存在以Get为前缀的属性,方法或方法,则AutoMapper会将目标成员名称拆分为单个单词(按PascalCase约定)。

//复杂的模型
var customer = new Customer
    {
        Name = "George Costanza"
    };
var order = new Order
    {
        Customer = customer
    };
var bosco = new Product
    {
        Name = "Bosco",
        Price = 4.99m
    };
order.AddOrderLineItem(bosco, 15);

//配置AutoMapper

Mapper.Initialize(cfg => cfg.CreateMap<Order, OrderDto>());

//执行映射

OrderDto dto = Mapper.Map<Order, OrderDto>(order);

dto.CustomerName.ShouldEqual("George Costanza");
dto.Total.ShouldEqual(74.85m);

我们使用CreateMap方法在AutoMapper中配置了类型映射。 AutoMapper只能映射它所知道的类型对,所以我们已经用CreateMap显式地注册了源/目标类型对。 为了执行映射,我们使用Map方法。

在OrderDto类型上,Total属性与Order上的GetTotal()方法匹配。 CustomerName属性与Order上的Customer.Name属性匹配。 只要我们适当地命名我们的目的地属性,我们不需要配置个别的属性匹配。

ANSYS专题-利用ANSYS SIwave进行PCB板的EMS仿真 本文详细描述了使用ANSYSSIwave进行电路板电磁敏感度(EMS)仿真的完整流程。主要步骤包括:导入AD软件生成的IPC2581文件,检查PCB叠层和电路参数,为敏感网络设置50欧姆端口并指定GND为参考网络,进行验证检查后设置频段范围和入射波类型(单/多入射、极化方式等),最后启动仿真并查看选定网络的EMS感应电压曲线。该过程提供了从文件准备到结果分析的全套操作指南,适用于评估电路板在电磁干扰环境下的性能表现。 阅读详情

相关推荐

【01】Canoe零基础手把手教学 --- Canoe安装

Canoe零基础手把手教学

jaytinlove的博客 7741

c#实体转换工具AutoMapper的使用讲解和扩展

背景介绍: 1.在开发中,我们经常需要将实体查询出来的实体转换为页面展示实体,这个页面展示的实体,其实我们口中常说的DTO(Data Tranfer Object) 2.我们查询完数据库数据后,如何转换为DTO呢,抛开手写,就要使用到工具了,今天带来的是一款轻量级的实体转换工具:AutoMapper 3.备注一下,AutoMapper十分强大,自己之前也踩过一些坑,但是我自己平时开发是不使用这个玩意的,我自己写了一套实体转换和映射,但是不代表AutoMapper不好哈,大多数玩家还是可以直接拿来开箱即...

Ling、bug 1255

反激开关电源变压器设计实例讲解(定明芳)

内容来自《反激变压器的设计》(定明芳主讲)。 定名芳老师主要讲了10步,最后应该还有一步,线径的选择已经绕制方式。这里进行了记录整理,把一些公式来源进行了推导。所有的设计都是基于理论计算。 1.确定电源规格 2.确定工作频率和最大占空比 3.计算匝比(利用伏秒平衡原则) 此处插入解释一下伏秒平衡,根源是磁通量平衡。该原则可以用来检查MOS管耐压是否够。 4.计算初级线圈峰值电流 基于CCM模式计算的。ip1是开关管要关闭时的峰值电流,ip2是开关管开始导通时的起始电流。因为时CCM模式,所以,ip

ydgd118的博客 5万+

AutoMapper扁平化处理

文档地址:https://automapper.readthedocs.io/en/latest/Flattening.html 对象-对象的映射,最常见的应用就是将一个复杂的对象模型映射到一个简单的对象模型。如有如下复杂模型: public class Order { private readonly IList&lt;OrderLineItem&gt; _orderLineIte...

芝麻麻雀-Asp.Net学习之路 542

Cadence仿真MOS电容C-V曲线:从电路图到参数扫描的完整流程

本文详细介绍了使用Cadence Virtuoso仿真MOS电容C-V曲线的完整流程,从电路图绘制到参数扫描,再到结果分析与问题排查。通过实际案例和实用技巧,帮助工程师快速掌握MOS电容特性分析的关键步骤,提升集成电路设计效率。

weixin_29271263的博客 428

随机森林模型及案例(Python)

1 集成模型简介 集成学习模型使用一系列弱学习器(也称为基础模型或基模型)进行学习,并将各个弱学习器的结果进行整合,从而获得比单个学习器更好的学习效果。 集成学习模型的常见算法有Bagging算法和Boosting算法两种。 Bagging算法的典型机器学习模型为随机森林模型,而Boosting算法的典型机器学习模型则为AdaBoost、GBDT、XGBoost和LightGBM模型。 1.1 Bagging算法简介 Bagging算法的原理类似投票,每个弱学习器都有一票,最终根据所有弱学习器的投

qq_42433311的博客 4万+

(十五).net之AutoMapper

AutoMapper是对象到对象的映射工具。在完成映射规则之后,AutoMapper可以将源对象转换为目标对象。

lwy 1333

【目标检测】IoU(交并比)详解及代码实现

1. IOU概述        IoU的全称为交并比(Intersection over Union),是目标检测中使用的一个概念,IoU计算的是“预测的边框”和“真实的边框”的交叠率-,即它们的交集和并集的比值。最理想情况是完全重叠,即比值为1。 2. IoU计算        IoU等于“预测的边框”和“真实的边框”之间交集和并集的比值。IoU计算如下图,B1为真实

Roaddd的博客 2万+

wpf prism 中使用automapper

AutoMapperExtension类。1.首先引入包Automapper。在App.xmal.cs中添加注入。

雨中深巷的油纸伞 1050

几款开源的自动驾驶仿真平台项目

它被开发为一个虚幻的插件,可以简单地放到任何你想要的虚幻环境中。第一类是基于合成的数据,对环境、感知及车辆进行模拟,这里的感知大多数是图像层面的感知,这类模拟器主要用于感知、规划算法的初步开发上,Carla、AirSim、Udacity self-driving car simulator就属于这类;第二类是基于真实数据的回放,这里的真实数据包括图像、lidar、radar等各种传感器的数据,这类模拟器主要用于测试无人驾驶中信息融合算法以及车辆不同部件的性能,Apollo和Autoware就属于这类。

南七小僧的学海无涯 2847

dolphinscheduler集群服务一键安装启动实现流程剖析

通过以上分析我们基本梳理清楚了整个dolphinscheduler项目的一键安装启动逻辑, 我们现在在通过一张图正好理一下整个实现流程。关于一键停止集群服务及一件查询集群各个角色服务实例运行状态的实现也都在stop-all.sh/status-all.sh及dolphinscheduler-daemon.sh这三个脚本中, 有兴趣自行研究。写这篇文章的核心目的不仅在于给大家分享如何优秀的开源项目的一键安装部署的实现过程。

最爱嫣夜来 1207

ASP.NET Core(.Net 5)AutoMapper自动映射

OOM Object-Object-Mapping实体间相互转换 AutoMapper AutoMapper官方的解释: AutoMapper是一个对象-对象映射器。对象-对象映射通过将一种类型的输入对象转换为另一种类型的输出对象来工作。 使AutoMapper变得有趣的是,它提供了一些有趣的约定,以免去搞清楚如何将类型A映射为类型B。只要类型B遵循AutoMapper既定的约定,就需要几乎零配置来映射两个类型。 官网地址:https://docs.automapper.org/en/stable/Get.

sxbei的博客 1496

从零开始讲PCIe(8)——PCIe拓扑与组件

从软件角度来看,根复合体内部的总线结构会被认为是一个标准的PCI总线,尽管实际上可能并不是物理的PCI总线,但它被设计为对软件呈现为PCI拓扑的一部分,以保持与旧版PCI软件的兼容性。这是由于其使用了非常高的传输速度。无论是根复合体内部的总线,还是交换机的多个端口,系统会通过与PCI相似的方式将其呈现给软件,使得传统的PCI枚举和配置流程能够继续使用。总体而言,根复合体不仅在物理上位于PCIe拓扑的顶部,而且在逻辑上也是整个PCIe系统的控制中心,它与系统中的所有PCIe设备建立连接,协调它们之间的通信。

apple_53311083的博客 2983

AutoMapper用法

AutoMapper是对象到对象的映射工具。在完成映射规则之后,AutoMapper可以将源对象转换为目标对象。 配置AutoMapper映射规则 Profile的用法 扁平化映射(Flattening) 指定映射字段(Projection) 验证配置项(Configuration Validation) 自定义解析器(Custom value resolvers) 自定义类型转换器(Custo...

Vincent_yuan1991的博客 613

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java automapper 使用_AutoMapper 使用总结

初识AutoMapper在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层、业务逻辑层、服务层、数据访问层。层与层访问需要数据载体,也就是类。如果多层通用一个类,一则会暴露出每层的字段,二者会使类字段很多,而且会出现很多冗余字段,这种方式是不可取的;如果每层都使用不同的类,则层与层调用时,一个字段一个字段的赋值又会很麻烦。针对第二种情况,可以使用AutoMapper来帮助我们实现类...

weixin_35786759的博客 1366

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java automapper 使用_AutoMapper用法(转载)

申明作者:齐飞配置AutoMapper映射规则AutoMapper是基于约定的,因此在实用映射之前,我们需要先进行映射规则的配置。1 public classSource2 {3 public int SomeValue { get; set; }4 public string AnotherValue { get; set; }5 }67 public classDestinat...

weixin_42415498的博客 770

java automapper 使用_AutoMapper实际项目运用

AutoMapper是对象到对象的映射工具。在完成映射规则之后,AutoMapper可以将源对象转换为目标对象。配置AutoMapper映射规则AutoMapper是基于约定的,因此在实用映射之前,我们需要先进行映射规则的配置。public class Source{public int SomeValue { get; set; }public string AnotherValue { get...

weixin_29483167的博客 419

AutoMapper

AutoMapper用于两个对象间的映射,通常用于完成DTO(Data Transfer Object)和Model之间的转换。AutoMapper1.创建Mapper.Initialize(cfg => { cfg.CreateMap<Foo, FooDto>(); cfg.CreateMap<Bar, BarDto>(); });var fooDto = Mapper.Map<F

哈哈的博客 658

.Net core 中 AutoMapper的应用

什么是AutoMapper ?! Automapper是一个object-object mapping(对象映射)的DTO(数据传输)工具,一般主要用于两个对象之间数据映射和交换。当然你也可以定义映射规则写对象的映射。 默认的映射规则是遵循的扁平化映射原则:只要Destination类型的成员名字与Source类型的成员名字匹配(成员名称不区分大小写),并且成员类型相同...

weixin_43925876的博客 1423

AutoMapper 对象到对象的映射工具

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34205076的博客 160

AutoMapper用法 转载https://www.cnblogs.com/youring2/p/automapper.html

AutoMapper是对象到对象的映射工具。在完成映射规则之后,AutoMapper可以将源对象转换为目标对象。 配置AutoMapper映射规则 AutoMapper是基于约定的,因此在实用映射之前,我们需要先进行映射规则的配置。 public class Source { public int SomeValue { get; set; } public ...

weixin_30411997的博客 88
上一篇: AutoMapper官方文档(三)【约定】
下一篇: AutoMapper官方文档(五)【反向映射和复杂化】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值