AutoMapper使用笔记

AutoMapper使用笔记

AutoMapper使用笔记

 

AutoMapper是一个.NET的对象映射工具。

项目地址:https://github.com/AutoMapper/AutoMapper

帮助文档:https://github.com/AutoMapper/AutoMapper/wiki

主要用途

领域对象与DTO之间的转换、数据库查询结果映射至实体对象。

使用笔记

场景1:源类型BlogEntry,目标类型BlogPostDto,指定属性进行映射(BlogEntry.ID对应于BlogPostDto.PostId)。

代码:

AutoMapper.Mapper.CreateMap<BlogEntry, BlogPostDto>()                 .ForMember(dto => dto.PostId, opt => opt.MapFrom(entity => entity.ID));

场景2:IDataReader映射至实体类

代码:

复制代码
using (IDataReader reader = _db.ExecuteReader(command)) {     if (reader.Read())     {         return AutoMapper.Mapper.DynamicMap<BlogConfig>(reader);     } }
复制代码

 

场景3:列表类型之间的映射,比如:源类型List<BlogSite>,目标类型List<BlogSiteDto>

代码如下:

AutoMapper.Mapper.CreateMap<BlogSite, BlogSiteDto>(); var blogSiteDto = AutoMapper.Mapper.Map<List<BlogSite>, List<BlogSiteDto>>(blogSite);

注:必须要先通过CreateMap建立BlogSite与BlogSiteDto的映射关系。

 

场景4:在映射时为目标实例的属性指定值

代码如下:

var blogSiteDto = new BlogSiteDto(); AutoMapper.Mapper.CreateMap<BlogEntry, BlogPostDto>()                 .ForMember(dto => dto.BlogSiteDto, opt => opt.UseValue(blogSiteDto));

注:BlogSiteDto是BlogPostDto的一个属性。

 

补充:

AutoMapper的配置(比如AutoMapper.Mapper.CreateMap<BlogSite, BlogSiteDto>();)建议放在程序启动时,比如Global.asax的Application_Start, BootStrapper。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109916.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Weblogic性能优化(图解)

    Weblogic性能优化(图解)

    2022年3月3日
    38
  • 一文看懂Uart和USART的区别「建议收藏」

    一文看懂Uart和USART的区别「建议收藏」UART通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追

    2022年5月19日
    52
  • hsql是什么_MQL语言

    hsql是什么_MQL语言Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。AD:51CTO学院:IT精品课程在线看!Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的。具有Server模式,进程内模式(In-Process)和内存模式(M

    2022年4月19日
    42
  • MODIS数据产品介绍

    MODIS数据产品介绍中分辨率成像光谱仪(MODerate-resolutionImagingSpectroradiometer)-MODIS是Terra和Aqua卫星上搭载的主要传感器之一,两颗星相互配合每1-2天可重复观测整个地球表面,得到36个波段的观测数据,这些数据将有助于我们深入理解全球陆地、海洋和低层大气内的动态变化过程,因此,MODIS在发展有效的、全球性的用于预测全球变化的地球系统相互作用模型中

    2022年5月30日
    29
  • 原码补码相互转换[通俗易懂]

    原码补码相互转换[通俗易懂]1.基础概念原码:为十进制数的二进制表示,正数符号位为0,负数符号位为1例如:10的二进制为00001010,-10的二进制为10001010补码:为原码的计算码,通俗的讲,计算的时候用补码,看大小的时候用原码2.原码转换成补码正数原码转补码:正数的补码,与原码相同例如,10的原码为00001010,补码也是00001010负数原码转补码:负数的补码:符号位不变,其余各位按位取反,取反后整体加1例如:-10的原码为10001010…

    2025年7月4日
    3
  • C# List用法 List 实列介绍

    C# List用法 List 实列介绍 usingSystem;usingSystem.Collections.Generic;namespaceList{classProgram{staticvoidMain(stri

    2022年7月4日
    23

发表回复

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

关注全栈程序员社区公众号