オートマッパーを使用して、ネストされたリストをフラット化された構造のリストにマップしようとしています。現在、正しいクレジット数を名前でマッピングできますが、役割と役割の説明をマッピングすることができません。
このようなフラット化されたリストを取得しようとしています。
ジョン・スミス、俳優、ドクター・イービル
ジョン・スミス、作家、null
フランク・ブラウン、ディレクター、ヌル
ジョー・グリーン、俳優、ヘンチマン
これは、私のドメイン モデル、ビュー モデル、およびマッピングの簡略版です。Domain.Credit から ViewModel.Credit へのマッピングで何が間違っていますか?
//Domain Model
public class Talent
{
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual IList<Credit> Credits { get; set; }
}
public class Credit
{
public virtual Role Role { get; set; }
public virtual string Subtitle { get; set; }
}
public class Role
{
public virtual string Title { get; set; }
}
//View Model
public class EpisodeViewModel
{
public IList<Credit> Credits { get; set; }
public class Credit
{
public string Name { get; set; }
public string Role { get; set; }
public string RoleDescription { get; set; }
}
}
//Mappings
Mapper.CreateMap<Episode, EpisodeViewModel>()
.ForMember(destination => destination.Credits, options => options.MapFrom(source => source.Talent));
Mapper.CreateMap<Talent, Credit>()
.ForMember(destination => destination.Name, options => options.MapFrom(source => string.Format("{0} {1}", source.FirstName, source.LastName)));
Mapper.CreateMap<Domain.Credit, Credit>()
.ForMember(destination => destination.Role, options => options.MapFrom(source => source.Role.Title))
.ForMember(destination => destination.RoleDescription, options => options.MapFrom(source => source.Subtitle));