次のマッピングがあります。
CreateMap<Logo, KeyValuePair<int, string>>()
.ConvertUsing(s => new KeyValuePair<int, string>(s.LogoID, s.LogoName));
CreateMap<Project, ProjectDTO>()
.ForMember(dest => dest.Logo, opt => opt.MapFrom(src => src.Logo));
モデルは次のとおりです。
public class Project
{
[Key]
public int ProjectID { get; set; }
public string Name { get; set; }
public virtual Logo Logo { get; set; }
}
public class Logo
{
[Key]
public int LogoID { get; set; }
public string LogoName { get; set; }
public byte[] LogoContent { get; set; }
public string LogoContentType { get; set; }
}
public class ProjectDTO : BaseDTO<ProjectDTO, Project>
{
public int ProjectID { get; set; }
public string Name { get; set; }
public KeyValuePair<int, string> Logo { get; set; }
}
ご覧のとおり、私の ProjectDTO では、ロゴのすべての詳細が必要ではなく、キーペアのロゴ ID とロゴ名だけが必要です。
プロジェクトにロゴが添付されている場合に機能します。しかし、ロゴが添付されていない場合、実行時エラーが発生しました。エラーは CreateMap ...ConvertUsing 行にあります。
ロゴがない場合に CreateMap エラーを回避するにはどうすればよいですか?
ありがとう。