AutoMapper - 找不到地图

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

我正在尝试在 C# 和 dotNET 中使用 AutoMapper,将实体转换为 DTO,反之亦然,但我不断收到相同的错误“未找到或不支持地图”。 所以我有实体和完全相同的 DTO(只是没有 ID),我创建了一个类来映射 DTO:

CreateMap<User, UserDTO>();

我在实现配置文件接口的类中写了这个。我究竟做错了什么?要映射注入构造函数 IMapper 并创建一个新实例:

private readonly IMapper _mapper;

并在构造函数中赋值_mapper = mapper,然后我尝试这样转换:

User user = _mapper.Map<User>(userdto);

我做错了什么吗?当然,我在 Startup 中有 service.AddAutoMapper。我也安装了所需的软件包。

c# .net automapper
1个回答
0
投票

问题是你有一个从

User
映射到
UserDto
的映射规则。

但是从这一行:

User user = _mapper.Map<User>(userdto);

你试图从

UserDto
映射到
User
,这与上面的规则不同。

因此,您需要添加缺失的映射规则(

UserDto
User
),这可以通过 Reverse Mapping 来实现:

CreateMap<User, UserDTO>()
    .ReverseMap();
© www.soinside.com 2019 - 2024. All rights reserved.