首页 > 解决方案 > .NET 缺少类型映射配置或不支持的映射?

问题描述

在我的控制器中,我有这种方法可以通过仅包含一对值的 DTO 更新模型,以便读取只需更新这两个值的 JSON。

[HttpPut("{id}")]
public async Task<IActionResult> UpdateSituation(int id, SituationForApprovalDto SituationForApprovalDto)
{
    var situation = await _repo.GetSituation(id);
    _mapper.Map(SituationForApprovalDto, situation);
    return NoContent();
}

但是当我启动应用程序时,终端会这样描述:

fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
      An unhandled exception has occurred while executing the request.
AutoMapper.AutoMapperMappingException: Missing type map configuration or unsupported mapping.

Mapping types:
SituationForApprovalDto -> Situation
Amaz.API.Dtos.SituationForApprovalDto -> Amaz.API.Models.Situation
   at lambda_method(Closure , SituationForApprovalDto , Situation , ResolutionContext )
   at Amaz.API.Controllers.SituationController.UpdateSituation(Int32 id, SituationForApprovalDto SituationForApprovalDto) in D:\Project6\Amaz\Amaz.API\Controllers\SituationController.cs:line 96
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)

我的方法有什么问题吗?

标签: c#entity-frameworkautomapper

解决方案


推荐阅读