Как настроить AutoMapper для выравнивания отношения 1: n? - PullRequest
0 голосов
/ 23 августа 2011

Рассмотрим два класса сущностей 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;}
}

И графический интерфейс должен быть похож на красную таблицу: CDTRACKMODEL

Отображения Automapper:

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?

1 Ответ

1 голос
/ 24 августа 2011

Предложение от Джимми указывает мне правильное направление ...

Почему бы просто не сопоставить объект Track с 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)
;
...