缺少类型映射配置或不支持的映射。 Automapper

问题描述 投票:0回答:1

我在我的Web Api项目中使用Automapper和NPoco。这是我的Dto和模型:

[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将一个模型映射到另一个模型。这是我的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:将automapper初始化为LightInject:

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

            Mapper.AddProfile<AutoMapperProfile>();
            container.Register<IMappingEngine>(c => Mapper.Engine);
         }
     }
c# asp.net asp.net-web-api mapping automapper
1个回答
0
投票

我解决了这个问题。在我的qazxsw poi类中,qazxsw poi类的命名空间不正确:FormulaComponent而不是Component

© www.soinside.com 2019 - 2024. All rights reserved.