Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动映射以映射嵌套列表对象_C#_Automapper - Fatal编程技术网

C# 自动映射以映射嵌套列表对象

C# 自动映射以映射嵌套列表对象,c#,automapper,C#,Automapper,我有两个对象: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

我有两个对象: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; }
    }
类ParentDTO
{
公共字符串AttA{get;set;}
公共列表属性列表{get;set;}
}
类别BDto
{
公共字符串属性{get;set;}
公共int模式{get;set;}
公共字符串模式{get;set;}
公共CDto AttrFobj{get;set;}
}
类CDto
{
公共字符串AttrG{get;set;}
公共int AtterH{get;set;}
}
//--------------------------------------
班级家长
{
公共字符串AttA{get;set;}
公共列表属性列表{get;set;}
}
B类
{
公共字符串属性{get;set;}
公共int模式{get;set;}
公共字符串模式{get;set;}
公共C AttrFobj{get;set;}
公共C属性{get;set;}
公共C属性{get;set;}
}
C类
{
公共字符串属性{get;set;}
公共字符串AttrJ{get;set;}
公共int模式{get;set;}
}
我想使用AutoMapper将数据从ParentDto对象映射到ParentObject (ParentDto中的所有数据都必须传输到父级,但第一个元素必须从AttrBNestedList复制到AttrBlList)

Mapper.CreateMap();
CreateMap();
Mapper.CreateMap()
.ForMember(dest=>dest.AttrBList,opt=>opt.AttrBNestedList.singleorDefault??);
我只需要从
List AttrBNestedList
映射到
List AttrBList


有人能帮我吗。谢谢

有一个语法错误,不允许您使用
SingleOrDefault()
,您需要使用
MapFrom
方法:

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

有一个语法错误,不允许您使用
SingleOrDefault()
,您需要使用
MapFrom
方法:

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