好的,假设我有一个多对多的学生/班级对象。使用以下映射
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
我想要的是约翰,代数和生物学这来了,但是生物学来自约翰和苏,她反过来给我生物和历史,其中填充了苏和弗兰肯斯坦。你不想得到弗兰肯斯坦(或生物学以外的任何东西)。您也可以在任何时候开始循环骑行。
我如何指定不填充那么深?SetMaxRows 显然不是我想要的,因为它减少了总行数,我只想补充第一级。我特别困惑,因为我认为 LazyLoading 会迫使我准确指定我想要补水的东西