EF7.Beta5: иерархическая навигация по отвеченным экземплярам возвращает значение null — работает прямой доступ.

Протестирована простая иерархия двух классов:

public class Company
    {
        public int Id { get; set; }
        public string Name { get; set; }
        ...
        public List<Department> Departments { get; set; }
    }

добавив два экземпляра

  public class Department
    {
        public int Id { get; set; }
        public string Name { get; set; }
        ...
        public Company Company { get; set; }
    }

Доступ myContext.Company в цикле foreach работает. Доступ myContext.Departments в цикле foreach работает. после только что созданных записей БД - работает даже иерархическая навигация.

НО попытка доступа (после перезапуска программы) к загруженному Company.Departments - Departments равна null.

Неверно ли мое ожидание - вернуть все прежние добавленные Departments путем прямой навигации в любом случае? ИЛИ это "исправимая функция"?


person PitG    schedule 27.07.2015    source источник


Ответы (1)


Ленивая загрузка еще не реализована в EF7. Если связанные объекты уже загружены, свойства навигации будут исправлены. Если это не так, свойства навигации будут нулевыми, пока вы их не загрузите. Либо жадно...

var companies = db.Companies.Include(c => c.Departments);

...или явно.

db.Departements.Where(d => d.CompanyId == company.Id).Load();
person bricelam    schedule 27.07.2015
comment
Спасибо. Я должен ждать полной реализации, но мог бы работать дальше. - person PitG; 28.07.2015