2016-11-09 7 views
0

Вот мой вопрос, я пытаюсь сопоставить обе эти сущности, и я Визитки получаю исключение:Automapper 5.1.1 Не удается отобразить сложный объект, Визитки недействителен

От:

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

Вызов Mapper из результата DataBase:

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

Исключение:

Missing конфигурация типа карты или неподдерживаемый отображение

EDIT

Openned вопрос на GitHub для AutoMapper, вы можете получить более подробную информацию там: Automapper 5.1.1 Can't map Complex object, aways invalid #1783

+0

Неполадка с этими свойствами: Tipo, [ForeignKey ("IdTipo")] public int IdTipo {get; частный набор; }, [ForeignKey («IdConselho»)] public int IdConselho {get; частный набор; }, public Conselho Conselho {get; частный набор; } –

+0

Я указал свойства, вы можете изучить их и исправить –

+0

@viveknuna Что мне делать? Игнорировать? – Fals

ответ

1

Попробуйте следующее:

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

Вам необходимо преобразовать один тип данных в другой. Для этого вторая строка добавляется в конфигурацию отображения.

Кроме того, это можно назвать только . Выполняя его несколько раз, перезаписываются предыдущие конфигурации.

+0

@Fals использует .ForMember (x => x.Tipo, y => y.MapFrom (s => s.Tipo.Nome)), поэтому проблема не в этом поле. –

+0

@ Ами не работает! Такая же проблема сохраняется, даже с этой модификацией! – Fals

+0

Не работает, не говорит нам ничего полезного. Нам нужна дополнительная информация. – Amy