映射出错
来源:8-5 【应用】使用PATCH部分更新资源

慕后端2012069
2023-04-04
在按照课程代码修改并运行后,访问api发生错误
以下是我的代码,controller文件中
public IActionResult PartiallyUpdateTouristRoute(
[FromRoute] Guid touristRouteId,
[FromBody] JsonPatchDocument<TouristRouteForUpdateDto> patchDocument
)
{
if (!_touristRouteRepository.TouristRouteExists(touristRouteId))
{
return NotFound("旅游路线找不到");
}
//取到数据
var touristRouteFromRepo = _touristRouteRepository.GetTouristRoute(touristRouteId);
//打补丁
var touristRouteToPatch = _mapper.Map<TouristRouteForUpdateDto>(touristRouteFromRepo);
patchDocument.ApplyTo(touristRouteToPatch);
_mapper.Map(touristRouteToPatch, touristRouteFromRepo);
_touristRouteRepository.Save();
return NoContent();
}
TouristRouteProfile文件中
public TouristRouteProfile()
{
CreateMap<TouristRoute, TouristRouteDto>()
.ForMember(
dest => dest.Price,
opt => opt.MapFrom(src => src.OriginalPrice * (decimal)(src.DiscountPresent ?? 1))
)
.ForMember(
dest => dest.TravelDays,
opt => opt.MapFrom(src => src.TravelDays.ToString())
)
.ForMember(
dest => dest.TripType,
opt => opt.MapFrom(src => src.TripType.ToString())
)
.ForMember(
dest => dest.DepartureCity,
opt => opt.MapFrom(src => src.DepartureCity.ToString())
);
//处理创建资源时的dto
CreateMap<TouristRouteForCreationDto, TouristRoute>()
.ForMember(
dest => dest.Id,
opt => opt.MapFrom(src => Guid.NewGuid())
);
CreateMap<TouristRouteForUpdateDto, TouristRoute>();
CreateMap<TouristRoute, TouristRouteForUpdateDto>();
}
TouristRoutePictureProfile文件中
public class TouristRoutePictureProfile:Profile
{
public TouristRoutePictureProfile()
{
CreateMap<TouristRoutePicture, TouristRoutePictureDto>();
CreateMap<TouristRoutePictureForCreationDto, TouristRoutePicture>();
CreateMap<TouristRoutePicture, TouristRoutePictureForCreationDto>();
}
}
感谢老师的解答
写回答
2回答
-
请检查你的 TouristRoutePictureProfile, 我感觉你好像少了 TouristRouteForUpdateDto 与 TouristRoute 的映射关系。012023-04-06
-
慕娘7348369
2024-01-19
我也遇到了这个问题,不知道你解决了吗
00
相似问题
automapper映射错误
回答 7
访问正确id的图片时出错
回答 1