Отсутствует конфигурация карты типов или неподдерживаемое отображение.Automapper - PullRequest
0 голосов
/ 19 марта 2019

Я использую Automapper с NPoco в своем проекте Web Api. Вот мои Dto's и модели:

[TableName("Component")]
    public class ComponentDto
    {
        [Column("Id")]
        public int Id { get; set; }

        public string BotanicalName { get; set; }
    }

[TableName("FormulaComponent")]
    public class FormulaComponentDto
    {
        [Column("Id")]
        public int Id { get; set; }

        [Reference(ReferenceType.Foreign, ColumnName = "ComponentId", ReferenceMemberName = "Id")]
        public ComponentDto Component { get; set; }

    }

public class Component
    {
        public int Id { get; set; }
        public string BotanicalName { get; set; }
}

public class FormulaComponent
    {
        public int Id { get; set; }
        public Component Component { get; set; }
}

Я пытаюсь сопоставить одну модель другой, используя Automapper. Вот мой профиль автопроизводителя:

public class AutoMapperProfile : Profile
    {
        protected override void Configure()
        {
            //From Model to Dto
            Mapper.CreateMap<FormulaComponent, FormulaComponentDto>().ReverseMap();
            Mapper.CreateMap<ComponentDto, Component>().ReverseMap();
        }
    }

Но когда я пытаюсь, у меня есть исключение: "Отсутствует конфигурация карты типов или неподдерживаемое отображение":

public IEnumerable<FormulaComponent> GetAll()
        {
            var formulaComponents = _repository.Get().Include(x => x.Component).ToList();
            return _mapper.Map<IEnumerable<FormulaComponentDto>, IEnumerable<FormulaComponent>>(formulaComponents);
        }

UPD: автопроцессор, инициализированный в LightInject:

public partial class Startup
    {
        public static void InitLightInject(HttpConfiguration config)
        {
            var container = new ServiceContainer();

            Mapper.AddProfile<AutoMapperProfile>();
            container.Register<IMappingEngine>(c => Mapper.Engine);
         }
     }

1 Ответ

0 голосов
/ 20 марта 2019

Я исправил эту проблему.В моем классе FormulaComponent это было неправильное пространство имен для класса Component: System.ComponentModel вместо Domain.Components

...