我正在使用最新版本的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; }
}
Run Code Online (Sandbox Code Playgroud)
我有两个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; }
}
Run Code Online (Sandbox Code Playgroud)
我用它来自动映射器配置:
config.CreateMap<Poll, EditPollViewModel>().ForMember(dest => dest.Options, src => src.MapFrom(t => t.Options));
Run Code Online (Sandbox Code Playgroud)
但是当我运行项目时,下面的代码我得到了错误.
return Mapper.Map<EditPollViewModel>(model);
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
缺少类型映射配置或不支持的映射.
映射类型:PollOption - > PollOptionViewModel
PollOption - >
PollOptionViewModel
你并不需要具有相同的名称,如地图成员Options到OptionsAutomapper自动执行此操作,你忘记映射 PollOption到PollOptionViewModel:
config.CreateMap<PollOption , PollOptionViewModel>().ReverseMap()
Run Code Online (Sandbox Code Playgroud)
并改变
public List<PollOptionViewModel> Options { get; set; }
Run Code Online (Sandbox Code Playgroud)
至
public ICollection<PollOptionViewModel> Options { get; set; }
Run Code Online (Sandbox Code Playgroud)
还要添加 ReverseMap()你的地图:
config.CreateMap<Poll, EditPollViewModel>().ReverseMap()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |