我有以下映射:
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 中,我不需要 Logo 的所有详细信息,而只需要密钥对 logoID、logoName。
当我将徽标附加到我的项目时,它可以工作。但是当没有附加徽标时出现运行时错误。错误在 CreateMap ...ConvertUsing 行上。
知道当我没有任何徽标时如何避免 CreateMap 错误吗?
谢谢。