AutoMapper:如何在 c# 中使用 AutoMapper 忽略子对象的子映射

AutoMapper : How to ignore child of child object from mapping using AutoMapper in c#

我有以下class结构

    public class Parent
    {
        public int ParentID { get; set; }
        public string ParentName { get; set; }
        public Child Child { get; set; }
    }

    public class ParentMap
    {
        public int ParentID { get; set; }
        public string ParentName { get; set; }
        public Child Child { get; set; }
    }

    public class Child
    {
        public int ChildID { get; set; }
        public string ChildName { get; set; }
        public InnerChild InnerChild { get; set; }
    }

    public class InnerChild
    {
        public int InnerChildID { get; set; }
        public string InnerChildName { get; set; }
        public Parent Parent { get; set; }
    }

我想将 Parent class 映射到 ParentMap class。映射后,我需要 ParentChild 对象。但是我不需要ParentChild.InnerChild对象(设置成null就可以了)。 我已经尝试过 ForPath() 如下。但它将停止映射整个 Child 对象。

CreateMap<Parent, ParentMap>()
  .ForPath(o => o.Child.InnerChild, opt => opt.Ignore());

谁能告诉我如何解决这个问题。

这是解决您的问题的一种快速方法

CreateMap<Parent, ParentMap>()
    .AfterMap((src, dst) =>
    {
        dst.Child.InnerChild = null;
    });