Изменить данные, отправляемые службой OData - PullRequest
2 голосов
/ 09 марта 2011

Мне просто интересно, что со стороны поставщика Odata.svc мы можем изменять / редактировать данные, передаваемые по линии клиенту odata.

например. При извлечении объекта-клиента меня не волнуют все связанные объекты (для нашего сценария их более 20, что добавляет много дополнительных данных, идущих через строку), поэтому возвращаемый объект также включает адреса связанных объектов:

Так что в этих обстоятельствах я не хочу, чтобы ссылки ссылались. Есть ли способ сделать это кроме выполнения выбора? Я надеюсь, что мы сможем перехватить запрос данных и разорвать эти отношения, а затем отправить данные измененного атома.

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

Я думаю, что только что ответил на аналогичный вопрос здесь Служба oData WCF - скрыть элемент . Может быть, это может помочь вам.

По сути, для этого можно использовать атрибут IgnoreProperties.

0 голосов
/ 09 марта 2011

Если вы можете сделать это на клиенте, вы можете использовать функцию проекций: $ select. Таким образом, клиент может запрашивать только те свойства, которые ему необходимы, а остальные не будут включены (это относится и к свойствам навигации). На сервере в настоящее время не существует простого способа сделать это, главным образом потому, что он эффективно меняет форму данных, и, таким образом, данные, возвращаемые сервером, не будут соответствовать модели, описанной в конечной точке $ metadata, что может привести к путанице у клиентов. Вы можете перехватить запрос по мере его поступления на сервер (зависит от вашей технологии хостинга, WCF / ASP.NET или, может быть, даже IDataServiceHost) и добавить $ select к URL-адресу до его обработки службами данных WCF.

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