Automapper 5.1.1 无法映射复杂对象,无效
Automapper 5.1.1 Can't map Complex object, aways invalid
这是我的问题,我正在尝试映射这两个实体,但我总是遇到异常:
发件人:
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)));
从数据库调用 Mapper 结果:
Mapper.Map<IEnumerable<CorpoGestor>, List<CorpoGestorDTO>>(result);
异常:
Missing type map configuration or unsupported mapping
编辑
在 GitHub 上为 AutoMapper 打开了一个问题,您可以在那里获得更多信息:Automapper 5.1.1 Can't map Complex object, aways invalid #1783
尝试以下操作:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<CorpoGestor, CorpoGestorDTO>();
cfg.CreateMap<Indicador, string>().ConvertUsing(x=> x.Nome);
}
您需要将一种数据类型转换为另一种数据类型。为此,将第二行添加到您的映射配置中。
此外,您应该只调用此一次。重复多次会覆盖之前的配置
这是我的问题,我正在尝试映射这两个实体,但我总是遇到异常:
发件人:
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)));
从数据库调用 Mapper 结果:
Mapper.Map<IEnumerable<CorpoGestor>, List<CorpoGestorDTO>>(result);
异常:
Missing type map configuration or unsupported mapping
编辑
在 GitHub 上为 AutoMapper 打开了一个问题,您可以在那里获得更多信息:Automapper 5.1.1 Can't map Complex object, aways invalid #1783
尝试以下操作:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<CorpoGestor, CorpoGestorDTO>();
cfg.CreateMap<Indicador, string>().ConvertUsing(x=> x.Nome);
}
您需要将一种数据类型转换为另一种数据类型。为此,将第二行添加到您的映射配置中。
此外,您应该只调用此一次。重复多次会覆盖之前的配置