Доброго времени суток уважаемые! Хочу задать наверное глупый вопрос - для чего нужен метод Include в Entity Framework? Пытался писать код и с ним и без него, проверял генерируемый SQL код с помощью LINQ Pad но не находил никакой разницы. Где этот метод бывает необходим или полезен? Что можно сделать с его помощью, чего нельзя или неудобно без него? Заранее спасибо!
1 ответ
Вероятно, в коде используется Lazy Loading. Чтобы отключить его, нужно пометить все свойства DbSet<>
класса MyDbContext
как virtual
. В этом случае при выполнении .ToList()
в данных связанных объектов будет null
. Чтобы заполнить их, потребуется принудительно указывать .Include()
.
-
при отключенной ленивой загрузке - отсутствует модификатор
virtual
у навигационного свойства. без указания ef о необходимости подгрузить связанные сущности(Include(), Load()
), навигационные свойства будут равныnull
– Bald7 окт 2016 в 8:44