【发布时间】:2020-04-02 22:56:29
【问题描述】:
所以这是我的第一个 Stack Overflow 问题,我希望我能很好地提供足够的详细信息以寻求帮助。我正在尝试将 AutoMappper 与 dotnet 3.1 与依赖注入一起使用,但它似乎并没有按照它所说的方式注册我的地图。
我收到的错误:
AutoMapper.AutoMapperMappingException: Missing type map configuration or unsupported mapping.
Mapping types:
User -> UserCustomerDto
在我的 Startup.cs 我有:services.AddAutoMapper(typeof(Startup)); 在 IServiceCollection 区域内
我创建了 User 模型和各种 DTO 模型。
这是我拥有的一个示例 Profile 模型:
public class UserCustomerProfile : Profile
{
public UserCustomerProfile()
{
CreateMap<User, UserCustomerDto>();
CreateMap<UserCustomerDto, User>();
}
}
我的 DTO 模型具有我的用户模型所具有的所有字段减去一些字段,这些字段是我不想在 UI 中显示的。
文档很难理解,因为有非依赖注入的示例以及在项目启动期间需要配置的 9.0 之前版本。
我也尝试在CreateMap() 上使用.ReverseMap(),但这也没有用。
我在我正在使用的服务中注入:
private readonly IMapper _mapper;
public UserService(IMapper mapper)
{
_mapper = mapper;
}
错误被吐出的地方是该服务内部,代码如下:_mapper.Map<UserCustomerDto>(user)
我对 dotnet core 和 C# 还很陌生,因此我们将不胜感激任何帮助!谢谢你,我希望这些信息足以为我指明正确的方向。
更新: 将 Profile 模型移动到与我的 Startup 相同的项目时,一切正常。现在我只需要知道如何添加对包含我的 Profile 模型的其他项目的引用。或者我不能?将它保留在我的模型项目中,我的其余模型所在的位置会很好。
【问题讨论】:
标签: c# entity-framework asp.net-core dependency-injection automapper