Linq to Entities - Жадная загрузка - PullRequest
       27

Linq to Entities - Жадная загрузка

0 голосов
/ 17 сентября 2009

У меня сложный объект, и когда я использую запрос linq без синтаксиса включения, я все равно возвращаю все связанные сущности обратно в мой граф объектов. Чем это можно объяснить?

Ответы [ 2 ]

1 голос
/ 17 сентября 2009

Вы не совсем. Linq загружает объекты так, как они вам нужны, но делает это прозрачно, поэтому, как только вы начинаете просматривать объекты (либо в коде, либо в просмотре отладчика), он загружает их так, как будто у вас уже есть все. 1002 * Если выполнить запрос, а затем разорвать соединение с базой данных, вы получите исключения из базы данных при попытке просмотреть объекты, поскольку они не смогут их загрузить.

Редактировать: Извините, я неправильно прочитал вопрос. Linq-to-entity не поддерживает отложенную загрузку (см. Комментарий от Craig ниже). Чтобы получить полный граф объектов, вы должны либо использовать «Включить» в запросе Linq, либо вызвать Load () для каждой ссылки. Извините, я не могу объяснить поведение, описанное в вопросе. Можете ли вы дать более подробную информацию? Возможно, оставьте свой запрос и код.

0 голосов
/ 23 августа 2010

Возможно, вы используете Entity Framework 4 и ленивый гадёж включен. Вы можете проверить свойство ObjectContextOptions.LazyLoadingEnabled в своем контексте. Хотя по умолчанию свойство имеет значение «false», инструменты генерации моделей обычно устанавливают его в «true». Посмотрите статью MSDN о загрузке связанных объектов - это объясняется в разделе о отложенной загрузке.

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