Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Automapper中映射嵌套的子对象属性_C#_Automapper - Fatal编程技术网

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。