具有对象到基本映射内部列表的自动映射器对象

时间:2018-11-23 04:39:45

标签: automapper

我正在尝试为automapper创建地图以让我映射那些实体

实体

public class Entity 
{
    ...
    public List<NavigationEntity> Navs { get; set; }
}

public class NavigationEntity   
{
    public int Id { get; set; }
}

需要与实体一起创建的DTO

public class EntityDto 
{
    ...
    public List<int> NavIds { get; set; }
}

这似乎并没有完成任务!该做什么工作?

CreateMap<Entity, EntityDto>().ReverseMap();
CreateMap<NavigationEntity, int>().ConstructUsing(x => x.Id);

编辑

试图添加
CreateMap ,List >();

但仍然没有映射

1 个答案:

答案 0 :(得分:0)

首先,应将public List<NavigationEntity> Navs { get; set; }public List<int> NavIds { get; set; }重命名为相同的名称。如果仍然无法正常运行,请尝试将ConstructUsing也更改为ConvertUsing。而且,如果您需要将Entity的reverseMap映射到EntityDTO,还应该添加

CreateMap<int, NavigationEntity>().ConvertUsing(x => new NavigationEntity { Id = x });

最终代码

public class Entity 
{
    ...
    public List<NavigationEntity> Navs { get; set; }
}

public class NavigationEntity   
{
    public int Id { get; set; }
}

public class EntityDto 
{
    ...
    public List<int> Navs { get; set; }
}

...
CreateMap<Entity, EntityDto>().ReverseMap();
CreateMap<NavigationEntity, int>().ConvertUsing(x => x.Id);
CreateMap<int, NavigationEntity>().ConvertUsing(x => new NavigationEntity { Id = x });