1

我正在使用 C# ASP.NET,并且需要在整个应用程序中使用递归。我目前正在使用 Linq to Entities 并在网上进行了广泛搜索,但找不到执行递归查询的优雅方式。我不知道递归会进行多少级。

4

2 回答 2

1

我有一个类似的问题要解决,最后我编写了一个辅助函数,它递归了我的数据源并返回了一个 IEnumerable,其中所有项目都按顺序排列。然而,就我而言,数据源是线性的。如果您的结构更像树形结构,并且必须分层显示,那么这将无法正常工作。

于 2012-05-23T01:25:02.510 回答
0

我不知道您有什么确切的问题,也不知道其他 ORM 在做什么。

我认为 NHibernate 应该直接解决大部分问题。

  • 使用延迟加载:孩子被延迟加载。您不需要递归查询之类的东西,这在 SQL 中是不可能的。
  • 带有延迟加载的导航可以双向工作。因此,您可以使用简单的查询从数据库中获取节点并导航到其父节点。
  • 在许多情况下,为递归图添加一些额外的冗余是有意义的。例如对根节点的引用,它允许查询至少有一个节点与标准匹配的树。或节点的深度(它到根的距离)。或者子节点的数量等等。无论您需要什么查询。
于 2012-05-23T06:13:50.743 回答