Запрос 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" />