2012-07-09 5 views
1

Я собираюсь внедрить веб-службу для своей базы данных, возможно, используя службы данных WCF. Некоторые из объектов, которые мне нужны для создания, имеют дочерние объекты, которые должны присутствовать, чтобы объекты были полезными. Но из-за ленивой загрузки в Entity Framework эти дочерние объекты не будут автоматически загружаться.Выборочная явная загрузка в службе данных WCF

Я собираюсь позвонить этой службе с помощью JSON, и я не хочу указывать $expand option в каждом вызове. И мне не ясно, где бы я использовал метод LoadProperty (та же ссылка), так как я просто пишу метод InitializeService и позволяю всем остальным.

Есть ли способ настроить его для явной загрузки некоторых дочерних объектов, а не других?

ответ

1

В настоящее время службы данных WCF не поддерживают автоматическое расширение на сервере. Клиент всегда должен запрашивать расширения.

Вы можете реализовать какой-то обходной путь вокруг WCF DS, изменив входящий запрос. Так, например, если клиент отправляет запрос на ~/Products, вы можете его изменить до того, как он попадет в WCF DS, и пусть он обрабатывает ~/Products & $ expand = Категория, и таким образом эффективно достигается автоматическое расширение. Но для того, чтобы такая услуга была надежной, вам придется анализировать URL-адрес запроса и добавлять только расширение, если его еще нет, и так далее.

0

Другим способом является то, что всегда необходимо, чтобы дочерний объект присутствовал, можем ли мы сделать дочерние объекты сложными типами вместо объектов, чтобы они всегда приходили вместе с родителем. Есть ли веская причина, по которой дочерние объекты являются отдельными объектами?

Надеюсь, это поможет.

Благодаря Pratik

+0

Можете ли вы уточнить, что вы имеете в виду сложных типов против лиц? –

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