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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 百度云里视频在线播放, 字幕乱码的解决办法

    百度云里视频在线播放, 字幕乱码的解决办法这几天折腾了一下百度云,放了个电影准备外出的时候看,结果找了一个没字幕,从射手上下载了字幕以后浏览器里一播放发现居然是乱码查看了一下字幕,在编辑器里看着没问题,于是猜想是不是编码的问题用UE

    2022年7月4日
    29
  • Android studio开发-第一个入门例子(十分详细)

    Android studio开发-第一个入门例子(十分详细)                            举个栗子实现功能:可以通过页面输入改变要显示的字符,然后通过按钮可以实现显示字符的放大功能。最终如下:一共四个控件:一个text输入,一个text显示,一个输入修改确认按钮,一个放大按钮步骤:1、建立项目   file-new-newproject新建一个项目…

    2025年7月4日
    3
  • Java树工具类,mysql树工具类

    Java树工具类,mysql树工具类依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.0</version></dependency><dependency><groupI

    2022年6月29日
    29
  • 【stm32】UART和USART简单区别

    【stm32】UART和USART简单区别USART:通用同步和异步收发器UART:通用异步收发器当进行异步通信时,这两者是没有区别的。区别在于USART比UART多了同步通信功能。这个同步通信功能可以把USART当做SPI来用,比如用USART来驱动SPI设备。同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。…

    2022年5月12日
    44
  • 新手安卓开发详细教程视频_安卓手机解锁激活成功教程教程

    新手安卓开发详细教程视频_安卓手机解锁激活成功教程教程安卓一、安卓工程构建及第一个安卓程序运行一、安卓工程构建及第一个安卓程序运行使用的软件-eclipse(ADT)在PackageExplorer栏右键点击,New→AndroidApplicationProjectApplicationName:在安装到手机上时应用程序显示的名字(例如微信,QQ)ProjectName:在PackageExplorer栏里面显示的工程名字PackageName:包名(包名不能带有中文,会构建失败),大部分都是公司域名的倒

    2025年5月30日
    3
  • cacheable更新_详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

    cacheable更新_详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用注释介绍@Cacheable@Cacheable的作用主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@Cacheable作用和配置方法参数解释examplevalue缓存的名称,在spring配置文件中定义,必须指定至少一个例如:@Cacheable(value=”mycache”)@Cacheable(value={”cache1”,”cache2”}key缓存的key,可…

    2025年6月2日
    4

发表回复

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

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