【问题标题】:Automapper , map list of long to an object nestedAutomapper,将长列表映射到嵌套对象
【发布时间】:2019-04-26 07:13:19
【问题描述】:

我有四门课

public class Status 
{
    public long Key { get;  set; }
    public string DisplayString { get; set; }
}

public class Attachment
{
    public long Key { get;  set; }
    public string FileName { get;  set; }
    public long FileSize { get; set; }
    public string ExternalKey_SO { get;  set; }
}


public class TaskClick 
{
    public long Key { get;  set; }
    public string CallId { get;  set; }
    public Status Status { get;  set; }
    public List<Attachment> Attachments { get;  set; }
}

public class TaskClickDto 
{
    public long Key { get;  set; }
    public string CallId { get; set; }
    public string Status { get; set; }
    public List<long> AttachmentKeys { get; set; }
}

我不知道如何将 TaskClickDto.AttachmentKeys 列表映射到 TaskClick.Attachments

AttachmentKeys是Taskclick的所有Key的列表

我的自动映射器配置

public class AutoMapperProfile : Profile
{
    public AutoMapperProfile()
    {

        CreateMap<TaskClick, TaskClickDto>()
             //TaskClick --> TaskClickDto  works ok
            .ForMember(dest => dest.CallId, opt => opt.MapFrom(src => src.CallId))
            .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.Status.DisplayString))
            .ForMember(dest => dest.AttachmentKeys, opt => opt.MapFrom(src => src.Attachments.Select(k => k.Key)))
            .ReverseMap()    
            //TaskClickDto --> TaskClick  works Ko
            .ForPath(dest => dest.Status.DisplayString, opt => opt.MapFrom(src => src.Status))
            .ForPath(dest => dest.Attachments, ????));
    }
}

所以我需要知道如何创建一个新的 Attachment 列表,为每个列表映射键并忽略其余属性。

最好的问候。 乔莉妮丝

【问题讨论】:

    标签: c# list object mapping automapper


    【解决方案1】:

    应该这样做:

    .ForPath(dest => dest.Attachments, opt => 
         opt.MapFrom(src => src.AttachmentKeys.Select(k => 
               new Attachment { Key = k }).ToList()));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 2016-05-26
      • 2022-01-06
      • 2020-04-03
      相关资源
      最近更新 更多