考虑两个实体类 CD 和跟踪:
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;}
}
考虑 CDTrackModel :
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 ???
;
是否可以使用AutoMapper创建所需的映射?
答案 0 :(得分:1)
吉米的建议指出了我正确的方向......
为什么不将跟踪实体映射到 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)
;