Указанный документ: https://docs.microsoft.com/en-us/aspnet/core/web-api/jsonpatch?view=aspnetcore-3.1
Я пытаюсь выполнить частичное обновление / исправление с помощью efcore и jsonPatch. Документ выглядит прямолинейно, но когда я пытаюсь сделать то же самое, я получаю сообщение об ошибке ниже и не понимаю, в чем проблема. Я пробовал то же самое с помощью автоматического сопоставления, но у него другой набор проблем.
Мой контроллер
[HttpPatch]
public object JsonPatchWithModelState(int id
,[FromBody] JsonPatchDocument<PurchaseOrder> patchDoc)
{
if (patchDoc != null)
{
var purchaseOrder = GetById(id); //get from db and include child objects
if(purchaseOrder!=null)
{
patchDoc.ApplyTo(purchaseOrder);
_context.SaveChanges();
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return GetById(id);
}
else
{
return BadRequest(ModelState);
}
}
else
{
return BadRequest(ModelState);
}
}
Мой запрос api от почтальона
https://localhost:44382/api/PurchaseOrderTest?id=3
[
{"op": "add", "path": "/ supplier", "value": "testSuplier33"}, {"op": "add", "path": "/ PurchaseOrderItem / -", "value": {"itemCode" : "ccc33"}}]
Сообщение об ошибке:
Microsoft.AspNetCore.JsonPatch.Exceptions.JsonPatchException: 'The target location specified by path segment '-' was not found.'