0

Here's my issue, I'm trying to map both this entities, and I aways get an exception:

From:

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; }
}

To:

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; }
}

Mapping:

 Mapper.Initialize(cfg => cfg.CreateMap<CorpoGestor, CorpoGestorDTO>()
            .ForMember(x => x.Tipo, y => y.MapFrom(s => s.Tipo.Nome)));

Calling Mapper from DataBase result:

Mapper.Map<IEnumerable<CorpoGestor>, List<CorpoGestorDTO>>(result);

Exception:

Missing type map configuration or unsupported mapping

EDIT

Openned an issue at the GitHub for AutoMapper, you can have more information there: Automapper 5.1.1 Can't map Complex object, aways invalid #1783

4

1 回答 1

1

尝试以下操作:

Mapper.Initialize(cfg => 
{
    cfg.CreateMap<CorpoGestor, CorpoGestorDTO>();
    cfg.CreateMap<Indicador, string>().ConvertUsing(x=> x.Nome);
}

您需要将一种数据类型转换为另一种数据类型。为此,将第二行添加到您的映射配置中。

此外,您应该只调用一次。多次这样做会覆盖以前的配置。

于 2016-11-09T21:32:36.520 回答