我正在尝试在 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。我也安装了所需的软件包。
问题是你有一个从
User
映射到UserDto
的映射规则。
但是从这一行:
User user = _mapper.Map<User>(userdto);
你试图从
UserDto
映射到User
,这与上面的规则不同。
因此,您需要添加缺失的映射规则(
UserDto
到 User
),这可以通过 Reverse Mapping 来实现:
CreateMap<User, UserDTO>()
.ReverseMap();