Обновите только определенные свойства с помощью Simple.OData.Client - PullRequest
0 голосов
/ 29 ноября 2018

Я использую Simple.OData.Client и хочу обновить некоторые свойства сущности.

Допустим, у меня есть следующий класс в C #:

[DataContract(Name = "entity")]
public class MyEntity
{
        [DataMember(Name = "propertyA")]
        public string MyPropertyA { get; set; }

        [DataMember(Name = "propertyB")]
        public string MyPropertyB { get; set; }
}

I 'Я пытаюсь обновить свойство A следующим образом:

await _simpleOdataClient.For<MyEntity>()
                  .Key(key)
                  .Set(new MyEntity
                  {
                    MyPropertyA = "test"
                  })
                  .UpdateEntryAsync();

Я взял это в качестве примера: https://github.com/object/Simple.OData.Client/wiki/Updating-entries

Моя проблема заключается в том, что отправляет запрос PUT со свойством propertyA = test, но также и propertyB = null,Он пытается установить нулевое значение для свойства, которое я не хочу изменять.

Можно ли обновить только определенные свойства и отправить HTTP PATCH в запросе OData?

1 Ответ

0 голосов
/ 29 ноября 2018

Для этого следует использовать анонимный объект или найти какой-либо способ настроить сериализатор клиента на игнорирование значений по умолчанию (например, null для типа ref).

await _simpleOdataClient.For<MyEntity>()
                  .Key(key)
                  .Set(new
                  {
                    MyPropertyA = "test"
                  })
                  .UpdateEntryAsync();
...