从单一来源到嵌套类的映射

时间:2019-03-31 20:27:52

标签: c# automapper

我正在尝试从一个单独的类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; }
}

映射到的类由字段组成

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

1 个答案:

答案 0 :(得分:0)

由于comment posted,我找到了一个非常简单的解决方案。 我必须初始化Mapper并设置属性

 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
   }))
 });