[英]how to map nested List to another List with AutoMapper
我正在使用最新版本的Auto Mapper 6.1.0'
。 我有如下的Poll
和PolOption
表:
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.