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。映射后,我需要 Parent
的 Child
对象。但是我不需要Parent
的Child.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;
});
我有以下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。映射后,我需要 Parent
的 Child
对象。但是我不需要Parent
的Child.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;
});