5

私の問題は、基本的に次のエンティティのセットに減らすことができます。

私はエンティティを言います:(名前付きのタイミング)MyEntityのリストがありますEntityTiming

public class Entity{

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

}

これは、(Timingsという名前の)リストを持つViewModelに対応します。MyEntityViewModelTimingViewModel

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未満、またはそれ以上になることはありません

私の質問は:アイテムがリストでnullの場合にデフォルト値を提供する方法はありますか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 に答える