代码之家  ›  专栏  ›  技术社区  ›  John Nyingi

从单个源映射到嵌套类

  •  0
  • John Nyingi  · 技术社区  · 6 年前

    我试图从一个类映射数据,称之为 MCI 用作上下文类

    public class MCI {
     public string sessionId {get; set;}
     [Key]
     public Guid Userid {get; set;}
     public string Username {get; set;}
     public string SocialServiceNo {get; set;}
     public string Employee_No {get; set;}
     public string Employer {get; set;}
     public string MCIBranch {get; set; }
    }
    

    类AM映射到由字段组成

    public class MCIDto{
     public string MCIBranch {get; set; }
     public UserDetails UserDetails {get; set;}
     public EmployementDetails EmpDetails {get; set;}
    }
    

    这是我的其他课程;

    public class UserDetails{
     public string sessionId {get; set;}
     public Guid Userid {get; set;}
     public string Username {get; set;}
     public string SocialServiceNo {get; set;}
    

    }

    public class EmploymentDetails {
      public string Employee_No {get; set;}
     public string Employer {get; set;}
    

    }

    我以这种方式构造了DTO,因为我正在序列化。 我想知道如何使用automapper我可以从 MCI MCIDetails .

    0 回复  |  直到 6 年前
        1
  •  0
  •   John Nyingi    6 年前

    多亏了 comment posted 我找到了一个非常直接的解决方案。 我必须初始化映射器并设置属性

     Mapper.Initialize(conf => {
      conf.CreateMap<MCI, MCIDto>()
       .ForMember(dest => dest.UserDetails, m => m.MapFrom(src => new UserDetails {
          sessionId = src.sessionId,
          Userid = src.Userid,
          Username = src.Username,
          SocialServiceNo = src.SocialServiceNo
        }))
       .ForMember( dest => dest.EmpDetails, m => m.MapFrom(src => new EmployementDetails {
          Employee_No = src.Employee_No,
          Employer = src.Employer
       }))
     });