5

我的问题基本上可以简化为以下一组实体:

我有一个实体说:MyEntity它有一个列表EntityTiming(名为 Timings)

public class Entity{

  public List<EntityTiming> Timings {get;set;}

}

它对应于一个ViewModelMyEntityViewModel它有一个列表TimingViewModel(名为 Timings)。

public class EntityViewModel
{
   public IList<TimingViewModel> Timings {get;set;}
}

我为映射方向配置了以下规则:entity -> viewModel

Mapper.CreateMap<Entity,EntityViewModel>

Mapper.CreateMap<EntityTiming,TimingViewModel>

EntityViewModel.Timings必须有 7 个项目。然而, Enitity.Timings 可能有少于 7 个项目/永远不会更多

我的问题是:如果列表中的项目为空,是否有办法提供默认值AutoMapper

4

1 回答 1

11

您可以使用AfterMap()

Mapper.CreateMap<Entity, EntityViewModel>()
      .AfterMap((src, dest) => { 
          if (dest.Timings == null) {
              // Populate default values
          }
          else if (dest.Timings.Count < 7) {
              // Populate the rest of the values
          }
       });
于 2012-06-18T15:58:32.887 回答