#odata
#odata
Вопрос:
В протоколе OData есть способ отложить представление свойств навигации (т. Е. Ссылок на определенный ресурс или коллекцию), чтобы сервер не возвращал клиенту дополнительные данные.
Мой вопрос в том, могу ли я сделать то же самое для обычных свойств? У меня есть структура данных, для вычисления которой серверу требуется много времени, и я бы хотел, чтобы клиент не получал значение по умолчанию.
Свойство логически является частью объекта и не является свойством навигации. В документации OData везде, где я видел отложенный контент, речь идет об отсрочке свойства навигации. Хотел узнать, возможно ли отложить обычные свойства, и если нет, каковы мои альтернативные варианты.
Ответ №1:
Вы можете использовать проекцию на клиенте, и вы получите только спроецированные свойства. Но вы не получите ссылку на непроецируемое свойство, это реализовано только для свойств навигации.
Надеюсь, это поможет,
Моника Фринту
Ответ №2:
Я не думаю, что это возможно.
В качестве альтернативы вы могли бы выделить вычисляемые свойства в другой объект (скажем, разделить MyEntity на MyEntity и MyEntityCalculations). Затем вы можете повторно использовать идентификатор вашего исходного объекта в качестве идентификатора второго объекта.
Итак, если у вас есть экземпляр MyEntity с ID = 32, то у вас может быть экземпляр myEntityCalculations, также с ID = 32, который затем содержит только вычисляемые свойства.
Комментарии:
1. Означает ли это, что myEntityCalculations также должно иметь дополнительное свойство с именем ID, поскольку оно должно быть ключом? Или есть какой-то способ сказать, что идентификатор myEntityCalculations ссылается на идентификатор MyEntity?
2. Конечно, вам нужно использовать общий идентификатор, чтобы у обоих объектов было свойство ID.