将源对象添加到目标列表

时间:2019-02-26 07:36:06

标签: c# automapper

这是我的源类:

class source
{
   int Prop1 {get; set;}
   string Prop2 {get; set;}
}

这是目的地:

class dest
{
   int Prop1 {get; set;}
   List<string> Prop2 {get; set;}
}

我想创建一个地图,该地图将:

  1. 将source.prop2插入dest.prop2
  2. 如果dest.prop2为null,则创建并添加

documentation here上找不到此类示例。

1 个答案:

答案 0 :(得分:0)

好吧,情况不是那么简单, 社区会让我知道是否要更新我的问题,我会

源类:

class TSource
{
   int Prop1 {get; set;}
   TSomeModelDto Prop2 {get; set;}
}

目的地:

class TDestination
{
   int Prop1 {get; set;}
   List<TSomeModel> Prop2 {get; set;}
}

TSomeModelDto是TSomeModel的Dto

选择

CreateMap<TSource, TDestination>()
  .ForMember(dst => dst.Prop1, src => src.MapFrom(p => p.Prop1))
  .AfterMap((s, d) => 
   { 
        if (d.Prop2 == null) d.Prop2 = new AutoConstructedList<TSomeModel>();

        d.Prop2 .Add(new TSomeModelDto 
        {
           PropX = s.TSomeModelDto.PropX
        });
   }