В вашем сценарии ленивая загрузка включена.Любая попытка проверить ListOfA
приведет к тому, что EF попытается лениво загрузить эту коллекцию.Если db
все еще находится в области видимости, он будет загружен (если нет, вы получите исключение).
В комментариях вы указали, что проверяете значение в отладчике, поэтомузапуск загрузки.
Вы можете легко наблюдать за командами SQL по мере их поступления, наблюдая за начальной загрузкой и последующей отложенной загрузкой при проверке коллекции.См.
Как мне записать сгенерированный SQL из DbContext.SaveChanges () в мою Программу?
Если вы хотите, чтобы дочерняя коллекция всегда загружалась, дажепосле того как объект покидает область действия db
, вы можете сделать что-то вроде:
using System.Data.Entity; // Needed for the delegate form of .Include(...)
using (var db = new myContext())
{
var instanceOfA = db.A
.Include(a => a.InstanceOfB)
.Include(a => a.InstanceOfB.ListOfA)
.First(); // Or .Where(...) depending on needs
}