Запрос REST Api PATCH не обновляет значения типа Int в базе данных

Метод Rest API PATCH не обновляет значения целочисленного типа в базе данных. Ниже приведен метод, который я использую. Когда данные получены, GetChangedPropertyNames не возвращает целочисленные атрибуты объекта как измененное значение.

public Task<OnsUser> PatchOnsUser(string id, Delta<OnsUser> patch)
    {
        var properties  = patch.GetChangedPropertyNames();
        object weightValue;
        patch.TryGetPropertyValue("Weight", out weightValue);
        Debug.WriteLine("Weight Value " + weightValue);
        return UpdateAsync(id, patch);
    }

Ниже объект уже присутствует в базе данных.

{
    "BodyType": "Athletic",
    "Weight": 55,
    "Height": 165,
    "LastActive": "2018-01-22T12:59:43.943Z",
    "PunchLine": "PUnch Line new ",
    "Bio": "I Dont Know",
    "TotalRating": 1,
    "RatingSum": 5,
    "Age": 28,
    "Dob": "1990-03-04T14:00:00Z",
    "NickName": "Basit2",
    "MsalUniqueID": "faa7f68d-64f5-419f-97e9-8130bc53fcf5",
    "QbUserID": 41480556
}

См. Изображение ниже, это данные, которые я отправил через почтальона, обратите внимание на вес, рост, линию удара и биографию.

введите описание изображения здесь

Это то, что я получаю в методе визуальной студии. Обратите внимание, что только 5 значений считаются обновленными, а не 7. (Это рассматривает NickName как обновленное значение, которое я не изменил)

введите описание изображения здесь

Последнее, это то, что возвращается.

введите описание изображения здесь

Я застрял в этом вопросе от 3 дней. Я понятия не имею, что здесь происходит не так. Я новичок в разработке REST Api. Эта проблема никогда не случалась раньше, в моем предыдущем проекте.

Я действительно могу использовать помощь, спасибо

1 ответ

Согласно вашему описанию, я проверил эту проблему на моей стороне, и она может работать, как ожидалось, на моей стороне. Вот некоторые детали, за которыми вы могли бы следить.

Модель:

public class Page: EntityData
{
    public int Color { get; set; }
    [JsonProperty("weight")]
    public int Weight { get; set; }
    public int Height { get; set; }
    public Point Offset { get; set; }
}

Операция обновления:

Насколько я понимаю, все свойства, отправленные вами в бэкэнд мобильного приложения, будут рассматриваться как свойства, которые необходимо обновить.

ТЕСТОВОЕ ЗАДАНИЕ:

Более того, мой GetChangedPropertyNames Метод находится в пакете Microsoft.AspNet.WebApi.OData.5.5.1. Вот некоторые связанные зависимости:

<package id="Microsoft.Azure.Mobile.Server" version="1.1.157.1" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Authentication" version="1.1.157.1" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.CrossDomain" version="1.1.157.1" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Entity" version="1.1.157.1" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Home" version="1.1.157.1" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Login" version="2.0.0" targetFramework="net46" />
<package id="Microsoft.Azure.Mobile.Server.Notifications" version="1.1.157.1" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Quickstart" version="1.1.157.1" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Tables" version="1.1.157.1" targetFramework="net45" />
Другие вопросы по тегам