簡體   English   中英

如何使用AutoMapper將嵌套List映射到另一個List

[英]how to map nested List to another List with AutoMapper

我正在使用最新版本的Auto Mapper 6.1.0' 我有如下的PollPolOption表:

public class Poll
{
      public int Id { get; set; }
      public string Title { get; set; }
      public string Body { get; set; }
      public virtual ICollection<PollOption> Options { get; set; }
}

public class PollOption 
{
   public virtual string Title { get; set; }
   public int Id { get; set; }
   public int PollId { get; set; }
   public virtual Poll Poll { get; set; }
}

我有這兩個模型的兩個viewModels喜歡:

public class EditPollViewModel
{
    public int Id { get; set; }
    public virtual string Title { get; set; }
    public List<PollOptionViewModel> Options { get; set; }
}
public  class PollOptionViewModel
{
    public int Id { get; set; }
    public string Title { get; set; }

}

我用它來自動映射器配置:

config.CreateMap<Poll, EditPollViewModel>().ForMember(dest => dest.Options, src => src.MapFrom(t => t.Options));

但是當我運行項目時,下面的代碼我得到了錯誤。

 return Mapper.Map<EditPollViewModel>(model);

我收到了這個錯誤:

缺少類型映射配置或不支持的映射。

映射類型:PollOption - > PollOptionViewModel

PollOption - >

PollOptionViewModel

您不需要具有相同名稱的地圖成員,例如Options to Options PollOption自動執行此操作,您忘記將PollOption映射到PollOptionViewModel

config.CreateMap<PollOption , PollOptionViewModel>().ReverseMap()

並改變

public List<PollOptionViewModel> Options { get; set; }

public ICollection<PollOptionViewModel> Options { get; set; }

還要在地圖中添加ReverseMap()

config.CreateMap<Poll, EditPollViewModel>().ReverseMap()

暫無
暫無

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

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