[OData] [ASP.NET] Запрос типа Delta не работает с Guid и Integer - PullRequest
0 голосов
/ 02 июля 2019

Мне нужна ваша помощь по 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; }

}

Что-то не так или не хватает ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...