WCF и Entity Framework Ленивая загрузка - PullRequest
1 голос
/ 03 февраля 2011

У меня есть график объектов:

Школа -> Классы -> Учащиеся.

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

это возможно?

Ответы [ 2 ]

4 голосов
/ 03 февраля 2011

Вкратце: нет .

Вы можете либо:

  • отправляет обратно все необходимые данные (включая classes и students с вашей school сущностью) за один вызов («готовая загрузка»)

или

  • вам нужно иметь отдельные методы в вашей службе WCF для извлечения подробных данных в отдельном вызове (что-то вроде: List<Class> GetClassesForSchool(int schoolId), List<Student> GetStudentsForClass(int classId))

Ленивая загрузка как таковая работает только до тех пор, пока ваш объектный контекст Entity Framework все еще нуждается в дополнительных данных - что, конечно, не тот случай, когда вы отправляете сущности по сети, используя WCF.

1 голос
/ 03 февраля 2011

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

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

Обновление: прочтите эту статью, если вы хотите узнать больше о DTOрисунок:

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