我有一个带有parentId的Team表/实体,这是一个自我加入同一个表的id。
有一个名为TopUnit的属性会递归地继续调用.Parent,直到它在Team实体上找到一个名为“IsTopUnit”的属性
使用nhibernate探查器现在会导致选择N + 1警报。无论如何都要优化本质上是一个递归自连接查询以避免选择N + 1行为。
batchsize似乎适用于子集合,但在这种情况下似乎并没有帮助,因为它不是一个“同步”,因为我不能做一个递归的SQL语句。
我想这个问题在nhibernate之外也是有效的。在SQL中执行递归语句的最佳方法是什么。看起来你不得不把它分解成多个查询。
答案 0 :(得分:1)