Вам нужно использовать либо готовую загрузку, либо отложенную загрузку, либо явную загрузку, чтобы принудительно загрузить ваши отношения.
При активной загрузке ваши отношения будут загружены сразу же, когда вы загрузите основной объект:
var e4 = context.E4Set.Include(e => e.E3.E2.E1).First(...);
Ленивая загрузка будет загружать ваши отношения прозрачно по требованию при первом обращении к ним (это вызовет отдельный запрос к базе данных для каждого доступного свойства навигации).Чтобы это работало, все ваши свойства навигации в каждом объекте, поддерживающем отложенную загрузку, должны быть virtual
.
. Для явной загрузки необходимо вручную выполнить загрузку для уже загруженного объекта:
var e4 = context.EF4Set.First(...);
var entry = context.Entry(e4);
entry.Reference(e => e3).Load();
, и выможно сочетать с энергичной загрузкой:
entry.Reference(e => e3).Query().Include(e => e.E2.E1).Load();