C# 自动映射以映射嵌套列表对象
我有两个对象:Parent和ParentDTO: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
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());