Я борюсь с NHibernate и его ленивой нагрузкой.
У меня есть структура, которую я упростил, но она показывает мою проблему.
Class Shift {
int ShiftID;
DateTime ShiftStart;
Employee Employee;
}
Class Employee {
int EmployeeID;
string Name;
}
Данные:
ShiftData
ID SHIFTTIME EmployeeID (int)
1 12:00 0
2 13:00 1
3 14:00 0
4 13:00 3
Employees
ID NAME
1 Morten
2 Peter
3 Henrik
Моя стратегия загрузки для смены заключается в использовании соединения, чтобы при загрузке смены NHibernate автоматически выполнял соединение слева, чтобы получить клиента.
Это отлично работает для смен с прикрепленными сотрудниками, однако в некоторые смены пока нет сотрудников.
Когда я пытаюсь получить доступ к Сотруднику такой смены после загрузки смены, это приводит к другому ВЫБОРУ для базы данных (обнаруживается с помощью вашего NHProfiler)
Почему это происходит?
Надеюсь, у вас есть ответ, я действительно застрял на этом.