IamはNHibernateおよびそのlazyloadと闘っています。NHibernate - LazyLoad one-to-zero
私は単純化した構造を持っていますが、それは私の問題を示しています。
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のは、自動的に左の顧客を得るために参加しないように参加し使用しています。 これは、従業員が付いているシフトでは完璧に機能しますが、シフトにはまだ従業員がいません。
シフトがロードされたら、そのようなシフトの従業員にアクセスしようとすると、データベースに対して別のSELECTが発生します(NHProfilerを使用して検出されます) これはどうしてですか?
あなたは答えが本当にこれに固執していることを願っています。
EmployeeIDを0ではなくnullにする必要がありますか? – Canton