Хорошо, скажем, у меня есть объекты «Многие-ко-многим», «Студент/класс». При следующем отображенииУкажите глубину ассоциации в критериях Nhibernate
HasManyToMany(m => m.Classes)
.Table("StudentClasses")
.LazyLoad()
.Cascade.None();
и запроса:
return _session.CreateCriteria<Student>()
.Add(Restrictions.Eq("Id", studentId))
.SetCacheable(false)
.UniqueResult<Student>();
Мои Таблицы
ID | Student ID | Class StudentId | ClassId
============ =========== ===================
1 | John 1 | Algebra 1 | 1
2 | Sue 2 | Biology 1 | 2
3 | Frank 3 | Speech 2 | 2
4 | Jim 4 | Athletics 2 | 5
5 | Frankenstein 5 | History 5 | 5
То, что я хочу Джон, с алгебры и биологии Это приходит, Но биология приходит с Джоном и Сью, она, в свою очередь, получает меня Bio и History, которая заполняет иск и Франкенштейна. Вы не хотите получать Франкенштейна (или что-то, что выходит за рамки биологии). Также в любой момент вы можете начать круговое движение кругами.
Как указать, чтобы не заполнить это глубоко? SetMaxRows, очевидно, не хочет, я ищу, поскольку он сокращает общее количество строк, я только хочу увлажнить первый уровень. Я особенно смущен, потому что думал, что LazyLoading заставит меня точно указать, что я хотел увлажнить.
Откуда вы знаете, что Джон и Сью тоже возвращаются? –