[Homework] DB Advanced - Intro to EF - Pr. 07 Employees and Projects
Здравейте,
чудя се над следното нещо - при тази задача, за дърпането на служителите от базата ползвам тази заявка:
var employees = db.Employees
.Include(e => e.EmployeesProjects)
.ThenInclude(ep => ep.Project)
.Where(e => e.EmployeesProjects
.Any(ep => ep.Project.StartDate >= projectTimeframeStart &&
ep.Project.StartDate <= projectTimeframeEnd))
.Take(30)
.ToList();
Чуденето ми е свързано с факта, че тази заявка успешно работи до 3тия служител включително - т.е. дърпа си нужната информация, даже по-надолу нормално си печатам служители, мениджъри, проекти, дати...
На четвъртия служител обаче, програмата гърми с NullReferenceException
, защото както се оказа Manager пропъртито в служителя е празно, както и на всички служители надолу.
Проблемът го реших лесно с .Include(e => e.Manager)
, но въпросът ми е по-скоро принципен - защо работи до един момент, и после спира? Не би ли трябвало да гърми още в началото щом има проблем, или да си работи нормално до края? Аз поначало умишлено не инклуднах мениджърите, тъй като когато си направя лист само с db.Employees.ToList()
по принцип мениджърите им не бяха null, а си имаха инклудната пълната информация.
Нялкой има ли идея защо така работи? Или по-скоро не работи? ;)