C# Automapper-基于谓词忽略集合中的项

C# Automapper-基于谓词忽略集合中的项,c#,automapper,C#,Automapper,我有深度嵌套的集合,它们都实现了一个接口: public ICmsAware { DateTime? InactiveDate { get; set; } } 所以具体的类看起来像: public class Parent : ICmsAware { public List<Child> Children { get; set; } public DateTime? InactiveDate { get; set; } } public class Ch

我有深度嵌套的集合,它们都实现了一个接口:

public ICmsAware
{
    DateTime? InactiveDate { get; set; }
}
所以具体的类看起来像:

public class Parent : ICmsAware
{
    public List<Child> Children { get; set; }

    public DateTime? InactiveDate { get; set; }
}

public class Child : ICmsAware
{
    public List<GrandChild> GrandChildren { get; set; }

    public DateTime? InactiveDate { get; set; }
}

public class GrandChild : ICmsAware
{
    public DateTime? InactiveDate { get; set; }
}

我发现的与此场景非常相似的唯一示例忽略了实体上的属性,而不是整个实体本身。

尝试使用自定义类型转换器。不久前我在这里添加了一个示例:它是否能够从集合中删除项,或者只是将不符合我的条件的项替换为null?因此,从我收集的内容来看,在覆盖转换的方法中,您可以循环源集合中的所有实体,执行测试,然后将要添加到集合中的项目映射到集合中,然后添加它们。啊,好的,这样只在映射集合而不是集合中的项目时才有效,不是吗?您也可以映射集合中的项目,但可能我不理解您。
Mapper.CreateMap<Parent, ParentViewModel>().IgnoreInactiveItem();
Mapper.CreateMap<Child, ChildViewModel>().IgnoreInactiveItem();
Mapper.CreateMap<GrandChild, GrandChildViewModel>().IgnoreInactiveItem();