Как обновить сущность OData и изменить ее свойства навигации в одном запросе?

Я пытаюсь реализовать простой сценарий, используя службу OData, предоставляемую службами данных WCF (используя приложение OData V3 / json; на данный момент odata = подробный формат полезной нагрузки. Я могу использовать формат JSON Light в будущем) , Основной сценарий выглядит так:

У меня есть две сущности:

class Person 
{ 
  public int ID { get; set; }
  public string Name { get; set; } 
  public virtual PersonCategory Category { get; set; }
}

class PersonCategory
{
  public int ID { get; set; }
  public string Description { get; set; }
  public virtual ICollection People { get; set; }
}

Теперь я хочу создать простую страницу редактирования для Персона. Эта страница редактирования может иметь ввод для имени и ввод или раскрывающийся список для категории человека.

Итак, сценарий идет:

Код загружает человека, используя $ expand для категории: GET /api.svc/People(1)?$expand=CategoryПользователь редактирует как лицо "Наименование имущества и его категория.Код для страницы делает один запрос на обновление этого лица "Свойства имени и категории.

Ключ здесь находится в "один запрос ", Это та часть, которую яЯ не могу найти документацию для. Я'Мы видели примеры, где они делят номер 3 выше на два запроса. Как то так (я нене помню точный формат - яЯ также не уверен, если выЯ должен удалить ссылку категории, прежде чем делать PUT):

PATCH /api.svc/People(1) with content: {"Name": "new name" }
PUT /api.svc/People(1)/$links/Category with content: { "url": "/api.svc/Categories(2)" }

Но я'Мы также слышали, что это сказано, но не продемонстрировали, что этоВозможно реализовать это обновление в виде одного запроса с изменением свойства навигации «Категория», указанным в соответствии с другими изменениями сущности «Человек». Может ли кто-нибудь дать мне пример того, как это можно сделать? Кроме того, не могли бы вы показать мне, как это будет сделано с помощью свойства навигации «многие ко многим», а не «один ко многим»?мы описали выше.

И наконец, ям в настоящее время использует подробный формат JSON, V3. Если бы я использовал новый формат JSON light, ваши ответы на вышеприведенные вопросы были бы другими? Если так, то как?

Ответы на вопрос(3)

Ваш ответ на вопрос