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

我有一个实体说:MyEntity,其中有一个EntityTiming列表(命名为Timings)

public class Entity{

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

}

它对应于ViewModel:MyEntityViewModel,其中包含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提供默认值(如果列表中的项目为空)

最佳答案

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

关于c# - 具有默认值的自动映射列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11086452/

10-11 22:26