在NHibernate中,QueryOver急切加载多对多关系

时间:2011-11-21 07:25:34

标签: c# nhibernate queryover

我在课程和小组实体之间有多对多的关系

课程(1:n)课程 - 小组(n:1)小组

  • 课程(名称,课程类别的课程组......)
  • 组(名称,类别为课程组的组课程......)
  • 场-组(场,组,...)

我想选择课程和相关课程 - 小组和小组

这是我的查询

QueryOver.Of<Course>().JoinQueryOver<Course-Group>(c => c.CourseGroups).Fetch(cf=>CourseGroups).Eager
.JoinQueryOver<Group>(cg => cg.Group).**[Fetch(cg => cg.Group).Eager.]**
DetachedCriteria

括号中部分的C#编译器报告错误

如何查询上述多对多关系?

2 个答案:

答案 0 :(得分:0)

如果你只是想急切地抓取它们

var query = QueryOver.Of<Course>()
    .Fetch(c => c.CourseGroups).Eager
    .Fetch(c => c.CourseGroups.Group).Eager;

否则只有子查询,请参阅here why

答案 1 :(得分:0)

你必须拥有你想要的系列的未来,否则你将最终得到笛卡尔产品。有关详情,请参阅此链接:https://stackoverflow.com/a/5683564/764805