Automapper 在映射时忽略属性

Automapper ignore properties while mapping

Automapper 中是否有规定在映射时忽略某些属性。例如,我有两个类 Manager 和 Employee。经理有一份员工名单和其他信息。

我大部分时间都需要在 Manager 中列出员工列表,但在少数情况下,我不需要将员工列表返回给客户(比如在编辑经理姓名时)。所以,当我创建地图时,我也包括了要映射的员工。现在有一种方法可以指定在映射时要忽略的员工属性。

1
2
3
4
5
// <--- Employees is included.
Mapper.CreateMap<Manager, ManagerDto>();

// <--- I want to ignore employees list here.
ManagerDto dto = Mapper.Map<Manager, ManagerDto>(manager);

您可以在映射配置中使用条件。例如:

1
2
3
4
5
6
Mapper.CreateMap<Manager, ManagerDto>()
    .ForMember(d => d.Employees,
               opt => {
                   opt.Condition(s => s.NeedEmployees);
                   opt.MapFrom(s => s.Employees);
               });

我认为您在实际应用映射时无法做到这一点。