首页 > 移动平台 > 详细

AutoMapper在.NetCore中实现两个对象的映射(复制)

时间:2020-08-01 15:27:20      阅读:318      评论:0      收藏:0      [点我收藏+]

添加NuGet包:AutoMapper

类1:

public class AuditLog
  {
    public string SystemTag { get; set; }

    public string BeforeContent { get; set; }

    public string AfterContent { get; set; }

    public DateTime OperateDateTime { get; set; }
    }
}

类2:

public class QueryAuditLogDto
{
    public string SystemTag { get; set; }

    public string BeforeContent { get; set; }

    public string AfterContent { get; set; }

    public string [] OperateDateTime { get; set; }
}

把类1复制给类2,并改变其中字段的类型或表现形式

          List<Models.AuditLog> listAuditLog = db.Query<Models.AuditLog>( SourceSql).ToList();
          List<QueryAuditLogDto> listAuditLogDto = new List<QueryAuditLogDto>();
          var config = new MapperConfiguration( cfg => cfg.CreateMap<Models.AuditLog, QueryAuditLogDto>()
            .ForMember(d=>d.BeforeContent ,opt=>opt.MapFrom(src=>src.BeforeContent.Replace( "{\"", "" ).Replace( "\"}", "" ).Replace( "\":\"", "=" ).Replace( "\",\"", "," ) ) )
            .ForMember(d=>d.AfterContent,opt=>opt.MapFrom(src=>src.AfterContent.Replace( "{\"", "" ).Replace( "\"}", "" ).Replace( "\":\"", "=" ).Replace( "\",\"", "," ) ) )
            .ForMember(d=>d.OperateDateTime,opt=>opt.MapFrom(src=> new string[] { src.OperateDateTime.ToString( "yyyy-MM-dd HH:mm:ss" ) } ))
          );
          var mapper = config.CreateMapper();
          listAuditLogDto = mapper.Map<List<QueryAuditLogDto>>( listAuditLog );

 

AutoMapper在.NetCore中实现两个对象的映射(复制)

原文:https://www.cnblogs.com/yxcn/p/13414452.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!