Я использую 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);
}
}