zoukankan      html  css  js  c++  java
  • .NET的对象映射工具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的一个属性。

  • 相关阅读:
    第二阶段冲刺记录八
    用户体验评价
    找水王
    第二阶段冲刺记录七
    第二阶段冲刺记录六
    第14周学习进度
    第二阶段冲刺记录五
    第二阶段冲刺记录四
    第一阶段意见评论
    IP协议号大全
  • 原文地址:https://www.cnblogs.com/zcm123/p/3152398.html
Copyright © 2011-2022 走看看