RESOLVI O PROBLEMA, ERA UMA LINHA DE CODIGO Q EU ESQUECI DE ADD NO PROGRAM.CS
os meus códigos: controller:
```
public IActionResult PatchProduto(int id, JsonPatchDocument<UpdateProdutoDto> patch)
{
var produto = _context.Produtos.FirstOrDefault(produto => produto.Id == id);
if (produto == null) return NotFound();
var produtoParaAtualizar = _mapper.Map<UpdateProdutoDto>(produto);
patch.ApplyTo(produtoParaAtualizar, ModelState);
if (!TryValidateModel(produtoParaAtualizar))
{
return ValidationProblem(ModelState);
}
_mapper.Map(produtoParaAtualizar, produto);
_context.SaveChanges();
return Ok(produto);
}
```
Profile:
public ProdutoProfile()
{
CreateMap<CreateProdutoDto, Produto>();
CreateMap<UpdateProdutoDto, Produto>();
CreateMap<Produto, UpdateProdutoDto>();
CreateMap<Produto, ReadProdutoDto>();
}
UpdateProdutoDto:
[Key]
public int Id { get; set; }
public string Nome { get; set; }
public string Sku { get; set; }
public string Descricao { get; set; }
public decimal Precovenda { get; set; }
public decimal Precocompra { get; set; }
public double Quantidadealertar { get; set; }
public string Unidademedida { get; set; }
eu mando a requisiçao pelo postman assim:
[ { "op": "replace", "path": "/descricao", "value": "Um produto do novo" } ]
e a resposta é essa:
{ "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "title": "One or more validation errors occurred.", "status": 400, "errors": { "$": [ "The JSON value could not be converted to Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1[API_Inventorysystem.Data.Dtos.Produtos.UpdateProdutoDto]. Path: $ | LineNumber: 0 | BytePositionInLine: 1." ], "patch": [ "The patch field is required." ] }, "traceId": "00-71dd2e6ab9c080cdd74704a1f85213d7-678cbff915beeb72-00" }
mesmo se eu mandar a requicisão sem os "[]", ainda n atualiza o produto.