1. 程式人生 > 實用技巧 >AutoMapper在.NetCore中實現兩個物件的對映(複製)

AutoMapper在.NetCore中實現兩個物件的對映(複製)

新增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 );