【发布时间】:2019-11-19 04:06:00
【问题描述】:
我有一个结合名字和姓氏的视图模型
public class EmployeeDTO
{
public string emp_id { get; set; }
public string fullname{ get; set; }
public List<EmployeeDTO> EmployeeDTOMap(List<employeeinfo> entities)
{
var config = new MapperConfiguration(cfg =>
{
cfg.ValidateInlineMaps = false;
cfg.CreateMap<employeeinfo, EmployeeDTO>()
.ForMember(d => d.emp_id, o => o.MapFrom(src => src.emp_id))
.ForMember(d => d.fullname,
o => o.MapFrom(src => string.Format("{0} {1}", src.firstname, src.lastname)))
.ForAllOtherMembers(o => o.MapAtRuntime());
});
var mapper = config.CreateMapper();
var dest = mapper.Map(mapper.Map(entities, typeof(List<employeeinfo>)), new List<EmployeeDTO>());
return dest;
}
}
但唯一的问题是返回值为 null,尽管我传递了 2 个实体 EmployeeDTOMap()。
【问题讨论】:
-
有什么原因,你映射了两次?您可以将代码更改为
mapper.Map<List<EmployeeDTO>>(entities),它将实体List<employeeinfo>映射到List<EmployeeDTO>。 -
外层mapper.map
标签: c# automapper