簡體   English   中英

Automapper,將長列表映射到嵌套的對象

[英]Automapper , map list of long to an object nested

我有四節課

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的所有鍵的列表

我的自動映射器配置

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, ????));
    }
}

因此,我需要知道如何為每個附件創建一個新列表,映射每個鍵並忽略其余屬性。

最好的祝福。 喬麗妮絲

應該這樣做:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM