List 如何配置AutoMapper以展平1:n关系?

List 如何配置AutoMapper以展平1:n关系?,list,mapping,viewmodel,automapper,relation,List,Mapping,Viewmodel,Automapper,Relation,考虑两个实体类CD和Track: public class CD { public long Id {get; set;} public string Name {get; set;} public IList<Track> Tracks {get; set;} } public class Track { public long Id {get; set;} public string Name {get; set;} public

考虑两个实体类CDTrack

public class CD
{
    public long Id {get; set;}
    public string Name {get; set;}
    public IList<Track> Tracks {get; set;}
}

public class Track
{
    public long Id {get; set;}
    public string Name {get; set;}
    public CD CD {get; set;}
}
public class CDTrackModel
{
    public long CdId {get; set;}
    public string CdName {get; set;}
    public long TrackId {get; set;}
    public string TrackName {get; set;}
}
GUI应该与红色表格类似:

自动映射:

Mapper.CreateMap<CD, CDTrackModel>()
.ForMember(vm => vm.CDId, o => o.MapFrom(m => m.Id)
.ForMember(vm => vm.CDName, o => o.MapFrom(m => m.Name)
// How to map the Tracks ???
;
Mapper.CreateMap()
.ForMember(vm=>vm.CDId,o=>o.MapFrom(m=>m.Id)
.ForMember(vm=>vm.CDName,o=>o.MapFrom(m=>m.Name)
//如何绘制轨道图???
;

是否可以使用AutoMapper创建所需的映射?

Jimmy的建议为我指明了正确的方向

为什么不将轨迹实体映射到CDTrackModel,而不是将CD实体映射到CDTrackModel

守则是:

Mapper.CreateMap<Track, CDTrackModel>()
.ForMember(vm => vm.TrackId, o => o.MapFrom(m => m.Id)
.ForMember(vm => vm.TrackName, o => o.MapFrom(m => m.Name)
.ForMember(vm => vm.CDId, o => o.MapFrom(m => m.CD.Id)
.ForMember(vm => vm.CDName, o => o.MapFrom(m => m.CD.Name)
;
Mapper.CreateMap()
.ForMember(vm=>vm.TrackId,o=>o.MapFrom(m=>m.Id)
.ForMember(vm=>vm.TrackName,o=>o.MapFrom(m=>m.Name)
.ForMember(vm=>vm.CDId,o=>o.MapFrom(m=>m.CD.Id)
.ForMember(vm=>vm.CDName,o=>o.MapFrom(m=>m.CD.Name)
;

如果没有AutoMapper,您将如何编写此代码?这给了我最好的指导。