这是我的问题,我正在尝试映射这两个实体,而且我也有例外:
发件人:
public int IdCorpoGestor { get; private set; }
public string Nome { get; private set; }
public string Email { get; private set; }
public string Federacao { get; private set; }
public DateTime DataIniMandato { get; private set; }
public DateTime DataFimMandato { get; private set; }
public string Telefone1 { get; private set; }
public string Telefone2 { get; private set; }
public int IdConselho { get; private set; }
[ForeignKey("IdConselho")]
public Conselho Conselho { get; private set; }
public int IdTipo { get; private set; }
[ForeignKey("IdTipo")]
public Indicador Tipo { get; private set; }
public bool Ativo { get; private set; }
}
要
public class CorpoGestorDTO
{
public int IdCorpoGestor { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public string Federacao { get; set; }
public DateTime DataIniMandato { get; set; }
public DateTime DataFimMandato { get; set; }
public string Telefone1 { get; set; }
public string Telefone2 { get; set; }
public int IdConselho { get; set; }
public int IdTipo { get; set; }
public bool Ativo { get; set; }
public string Tipo { get; set; }
}
映射:
Mapper.Initialize(cfg => cfg.CreateMap<CorpoGestor, CorpoGestorDTO>()
.ForMember(x => x.Tipo, y => y.MapFrom(s => s.Tipo.Nome)));
从DataBase结果调用Mapper:
Mapper.Map<IEnumerable<CorpoGestor>, List<CorpoGestorDTO>>(result);
例外:
缺少类型地图配置或不支持的映射
修改
在AutoMapper的GitHub上打开一个问题,您可以在那里获得更多信息:Automapper 5.1.1 Can't map Complex object, aways invalid #1783
答案 0 :(得分:1)
尝试以下方法:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<CorpoGestor, CorpoGestorDTO>();
cfg.CreateMap<Indicador, string>().ConvertUsing(x=> x.Nome);
}
您需要将一种数据类型转换为另一种数据类型。为此,第二行将添加到映射配置中。
此外,您应该只调用一次。多次执行将覆盖以前的配置。