我有以下型号:
class Page{
List<Version> Versions
}
class Version {
List<ContentControl> ContentControls
}
我要映射到:
class Page{
List<PageVersion> PageVersions
}
class PageVersion {
List<PageControl> PageControls
}
我有以下代码将页面映射到页面并将版本映射到PageVersions。
CreateMap<Models.Page, vitaminW.Core.Entities.Models.Page>()
.ForMember(p => p.PageVersions, opt => opt.MapFrom(p => p.Versions));
这样可以正常工作,并且PageVersions会被填充。
但是,我正在努力将ContentControls映射到PageControls。
如果我添加以下映射:
CreateMap<Models.PageVersion, vitaminW.Core.Entities.Models.PageVersion>()
.ForMember(m => m.PageControls, opt => opt.MapFrom(o => o.ContentControls));
我收到以下错误:
Error mapping types.
Mapping types:
Page -> Page
vitaminW.Public.Presentation.Models.Page -> vitaminW.Core.Entities.Models.Page
Type Map configuration:
Page -> Page
vitaminW.Public.Presentation.Models.Page -> vitaminW.Core.Entities.Models.Page
Property:
PageVersions
我查了一下MapAfter,但是我不确定如何用已经映射过的孩子做这个。
有什么建议吗?
答案 0 :(得分:0)
您尚未声明已添加ContentControl
到PageControl
CreateMap<Models.ContentControl, vitaminW.Core.Entities.Models.PageControl>();
看起来AutoMapper无法在两种类型之间找到地图而失败。