2012-06-18 151 views
3

我的问题可以降低到基本上下面的一组实体:自动映射列表默认值的

我有一个实体说:MyEntity具有EntityTiming(名为计时)的列表

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 MUST具有7个项目。然而,Enitity.Timings可能有小于7项/从不更多

我的问题是:有没有提供默认值,如果该项目是使用AutoMapper

回答

9

您可以使用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 
      } 
     });