【发布时间】:2013-08-28 18:34:30
【问题描述】:
好的,假设我有一个多对多、学生/班级对象。用下面的映射
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 会迫使我准确指定我想要补充的水分
【问题讨论】:
-
你怎么知道约翰和苏也回来了?
标签: nhibernate fluent-nhibernate nhibernate-criteria