【发布时间】:2011-01-04 15:31:12
【问题描述】:
我有一个带有 parentId 的 Team 表/实体,它是一个自加入同一个表的 id。
有一个名为 TopUnit 的属性将递归地继续调用 .Parent 直到它在 Team 实体上找到一个名为“IsTopUnit”的属性
现在使用 nhibernate 分析器会导致 Select N + 1 警报。有没有办法优化本质上是递归自连接查询以避免 Select N + 1 行为。
batchsize 似乎适用于子集合,但在这种情况下似乎无济于事,因为它完全是“同步的”,因为我无法执行递归 SQL 语句。
我猜这个问题在 nhibernate 之外也是有效的。在 SQL 中执行递归语句的最佳方法是什么。看来您必须将其分解为多个查询。
【问题讨论】:
标签: c# sql-server nhibernate