简体   繁体   English

AutoMapper 到 map 嵌套列表 object

[英]AutoMapper to map a nested list object

I have 2 objects: Parent and ParentDTO:我有 2 个对象:Parent 和 ParentDTO:

class ParentDTO
    {
        public string AttA { get; set; }
        public List<List<BDto>> AttrBNestedList { get; set; }
    }
    class BDto
    {
        public string AttrC { get; set; }
        public int AtterD { get; set; }
        public string AtterE { get; set; }

        public CDto AttrFobj { get; set; }
    }

    class CDto
    {
        public string AttrG { get; set; }
        public int AtterH { get; set; }
    }

    //--------------------------------------
    class Parent 
    {
        public string AttA { get; set; }
        public List<B> AttrBList { get; set; }
    }
    class B
    {
        public string AttrC { get; set; }
        public int AtterD { get; set; }
        public string AtterE { get; set; }

        public C AttrFobj { get; set; }
        public C AttrGobj { get; set; }
        public C AttrHobj { get; set; }

    }

    class C
    {
        public string AttrI { get; set; }
        public string AttrJ { get; set; }
        public int AtterK { get; set; }
    }

I want to using AutoMapper to map data from ParentDto object to Parent object (all data in ParentDto has to transfer to Parent, but first element from AttrBNestedList copy to AttrBList)我想使用 AutoMapper 到 map 数据从 ParentDto object 到父 object(ParentDto 中的所有数据都必须传输到父,但第一个元素从 AttrBNestedList 副本)

Mapper.CreateMap<CDto, C>();
Mapper.CreateMap<BDto, B>();
Mapper.CreateMap<ParentDto, Parent>()
      .ForMember(dest => dest.AttrBList , opt => opt.AttrBNestedList.singleorDefault??);

I need just singleorDefault item from List<List<BDto>> AttrBNestedList map to List<B> AttrBList我只需要从List<List<BDto>> AttrBNestedList map 到List<B> AttrBList的 singleorDefault 项目

Can anyone help me.谁能帮我。 Thanks谢谢

There is a syntax error which doesn't allow you to use SingleOrDefault() , you need to use MapFrom method:存在不允许您使用SingleOrDefault()的语法错误,您需要使用MapFrom方法:

Mapper.CreateMap<ParentDTO, Parent>().ForMember(dest => dest.AttrBList, opt => opt.MapFrom(src => src.AttrBNestedList.SingleOrDefault()));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM