2012-06-18 73 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 
      } 
     });