我有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; }
}
我想使用AutoMapper将数据从ParentDto对象映射到Parent对象 (ParentDto中的所有数据都必须传输到Parent,但是第一个元素从AttrBNestedList复制到AttrBList)
Mapper.CreateMap<CDto, C>();
Mapper.CreateMap<BDto, B>();
Mapper.CreateMap<ParentDto, Parent>()
.ForMember(dest => dest.AttrBList , opt => opt.AttrBNestedList.singleorDefault??);
我只需要从List<List<BDto>> AttrBNestedList
映射到List<B> AttrBList
的singleorDefault项目
谁能帮助我。谢谢
答案 0 :(得分:0)
存在语法错误,不允许您使用SingleOrDefault()
,需要使用MapFrom
方法:
Mapper.CreateMap<ParentDTO, Parent>().ForMember(dest => dest.AttrBList, opt => opt.MapFrom(src => src.AttrBNestedList.SingleOrDefault()));