Мне нужна ваша помощь по OData, особенно по запросу Delta.
В моем контроллере расширение ODataController:
[HttpPatch("{key}/edit")]
[AcceptVerbs("PATCH", "MERGE")]
public IActionResult PostEdit(Guid key, Delta<Bike> request)
{
Bike p = _bikeRespository.Get(key);
if (request == null)
throw new NullReferenceException("unable to find id");
request.Patch(p);
_bikeRespository.SaveChangesAsync();
return Ok(p);
}
Поэтому я делаю запрос с моим почтальоном
url: http://localhost:5001/api/Bike/f6e4d714-debc-4df8-827d-0c80f50944ee/edit
Тело запроса:
{"Name": "YZR M1123",
"productid":"58d6c929-258c-44d9-b0e7-40907e638190",
"Price": 21000,
"IsSecond" : true }
Тело ответа:
{"id": "f6e4d714-debc-4df8-827d-0c80f50944ee",
"name": "YZR M1123",
"productId": "e541382f-6143-41ba-b954-1a2b2f5791f6",
"price": 50000000,
"isSecond": true,
"dateRelease": "0001-01-01T00:00:00"}
IsSecond
и значение имени было изменено, но productId
и цена не
Класс велосипеда, подобный этому
public class Bike : IEntity<Guid>
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { set; get; }
public Guid productId { set; get; }
public int Price { set; get; }
public bool IsSecond { set; get; }
public DateTime DateRelease { set; get; }
[JsonIgnore]
[ForeignKey(nameof(productId))]
public Product Product { set; get; }
}
Что-то не так или не хватает ??