C# 自引用列表映射

C# 自引用列表映射,c#,automapper,C#,Automapper,我有一个类别和子类的自参考列表。每个类别都有一个子类别列表,这些子类别也是类别,但自动映射器仅应用于模型的第一个级别 创建地图 .ForMember dest=>dest.itemsont,opt=>{ 整数=0; opt.resolvesusing src=>{ 返回recursiveitemscont src,number; }; } .ForMember dest=>dest.Children,opt=>{}; 公共类类别 { 公共int Id{get;set;} 公共字符串名称{get;

我有一个类别和子类的自参考列表。每个类别都有一个子类别列表,这些子类别也是类别,但自动映射器仅应用于模型的第一个级别

创建地图 .ForMember dest=>dest.itemsont,opt=>{ 整数=0; opt.resolvesusing src=>{ 返回recursiveitemscont src,number; }; } .ForMember dest=>dest.Children,opt=>{}; 公共类类别 { 公共int Id{get;set;} 公共字符串名称{get;set;} public int?ParentId{get;set;} 公共虚拟类别父项{get;set;} 公共虚拟ICollection子项{get;set;} 公共ICollection项{get;set;} } 公共类类别已更正为 { 公共字符串名称{get;set;} 公共int Id{get;set;} public int ItemsCount{get;set;} 公共ICollection子项{get;set;} public int ParentId{get;set;} }
修复是有内部自动映射配置文件

        CreateMap<Category, CategoryForReturnDto> ()
            .ForMember (dest => dest.ItemsCount, opt => {
                int number = 0;
                opt.ResolveUsing (src => {
                    return RecursiveItemsCount (src, number);
                });
            });
在dto内部

public class CategoryForReturnDto
{
     public string Name { get; set; }
     public int Id { get; set; }
     public int ItemsCount { get; set; }
     public ICollection<CategoryForReturnDto> Children { get; set; }
     public int? ParentId { get; set; }
}

您不想将CategoryForreturnedTo.Children作为一个ICollection吗?这会更有意义。儿童与物品本身的结构相同,他们也会有儿童…@HassanKalach您的第二个FormMember设置儿童属性的目标是什么?为什么你希望整棵树被转换?因为类型匹配,所以不需要转换Children属性。@YeldarKurmangaliyev是的,你的正确,我没有考虑过correctly@Progman我没有任何线索,我试图找出如何使automapper与子儿童一起工作