C# 如何在Automapper中映射嵌套的子对象属性
我有最新的地图:C# 如何在Automapper中映射嵌套的子对象属性,c#,automapper,C#,Automapper,我有最新的地图: CreateMap<Article, ArticleModel>() .ForMember(dest => dest.BaseContentItem, opts => opts.MapFrom(src => src.BaseContentItem)) .ForMember(dest => dest.BaseContentItem.TopicTag, opts => opts.MapFrom(src => src.B
CreateMap<Article, ArticleModel>()
.ForMember(dest => dest.BaseContentItem, opts => opts.MapFrom(src => src.BaseContentItem))
.ForMember(dest => dest.BaseContentItem.TopicTag, opts => opts.MapFrom(src => src.BaseContentItem.TopicTag))
.ForMember(dest => dest.MainImage, opts => opts.MapFrom(src => src.MainImage))
.ReverseMap();
CreateMap()
.FormMember(dest=>dest.BaseContentItem,opts=>opts.MapFrom(src=>src.BaseContentItem))
.FormMember(dest=>dest.BaseContentItem.TopicTag,opts=>opts.MapFrom(src=>src.BaseContentItem.TopicTag))
.FormMember(dest=>dest.MainImage,opts=>opts.MapFrom(src=>src.MainImage))
.ReverseMap();
我得到的错误是:
System.ArgumentException:“表达式”dest=>
dest.BaseContentItem.TopicTag'必须解析为顶级成员,并且
不是任何子对象的属性。在子级上使用自定义解析器
键入或改为使用AfterMap选项。”
如何绘制此地图?这应该可以。使用
ForPath
代替ForMember
CreateMap<Article, ArticleModel>()
.ForMember(dest => dest.BaseContentItem, opts => opts.MapFrom(src => src.BaseContentItem))
.ForPath(dest => dest.BaseContentItem.TopicTag, opts => opts.MapFrom(src => src.BaseContentItem.TopicTag))
.ForMember(dest => dest.MainImage, opts => opts.MapFrom(src => src.MainImage))
.ReverseMap();
CreateMap()
.FormMember(dest=>dest.BaseContentItem,opts=>opts.MapFrom(src=>src.BaseContentItem))
.ForPath(dest=>dest.BaseContentItem.TopicTag,opts=>opts.MapFrom(src=>src.BaseContentItem.TopicTag))
.FormMember(dest=>dest.MainImage,opts=>opts.MapFrom(src=>src.MainImage))
.ReverseMap();
您需要ForPath而不是ForMember。