2012-04-25 11 views
1

В настоящее время я работаю над небольшим прототипом с использованием Netflix OData api. Я хотел бы всегда загружать объекты с нетерпением. Другими словами, я не хочу специально «развернуть» свойства. Скорее я хотел бы просто загрузить все свойства данного объекта, когда этот объект будет извлечен. Я не прошу совета по дизайну или архитектуре. Я знаю последствия этого. Есть ли способ активировать интенсивную загрузку на уровне контекста?Яркая загрузка с помощью OData

Благодаря

+0

Насколько мне известно, это невозможно. Я не был частью первоначального обсуждения, но если бы он был один, это, скорее всего, было бы сосредоточено вокруг того, насколько легко было бы сделать DoS с нетерпением загруженным сервисом. Вы можете использовать переписывание URL, чтобы добавить $ expand ко всем своим запросам. Я также рекомендую добавить запрос функции на странице https://data.uservoice.com/forums/72027-wcf-data-services-feature-suggestions и заставить людей голосовать на нем, если вы считаете, что это важно. –

ответ

2

Как Марк отмечалось выше, это не возможно в настоящее время с любой встроенной функции из Службы данных WCF. Вы можете ввести $ expand в URL-адрес клиента, используя некоторый код, чтобы он выглядел так, будто вам не нужно делать это явно.

Проблема с некоторым общим решением является:

  • Включения этого на будет передавать много данных, даже если приложению не может понадобиться.
  • Сколько уровней должно пройти? Всего один или два или многие. Он не может быть неограниченным, поскольку в графе объектов могут быть циклы.

Вы также можете изменить свои классы на стороне клиента, чтобы ленивая загрузка свойства при доступе. Существует API DataServiceContext.LoadProperty, поэтому просто позвоните в нужное место.

+0

Я боялся, что это так, но я понимаю, почему. Я пытаюсь использовать этот DataServiceContext.LoadProperty или просто просто .Expand («Entity/Property») на все, что мне нужно, чтобы с нетерпением загружать. Не идеально, но сейчас это работает. – Buzzer

Смежные вопросы