ORM可以处理递归

本文关键字:递归 处理 ORM | 更新日期: 2023-09-27 18:35:05

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

ORM可以处理递归

我有一个类似的问题需要解决,我最终编写了一个帮助函数,该函数递归我的数据源并返回一个按顺序包含所有项目的 IEnumerable。 但是,就我而言,数据源是线性的。 如果你的更像是一个树结构,并且必须分层显示,这将不起作用。

我不知道

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

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

  • 使用延迟加载:子项延迟加载。您不需要像递归查询这样的东西,这在 SQL 中是不可能的。
  • 延迟加载导航在两个方向上都有效。因此,您可以使用简单的查询从数据库中获取节点并导航到其父节点。
  • 在许多情况下,向递归图添加一些额外的冗余是有意义的。例如,对根节点的引用,它允许查询至少有一个节点与条件匹配的树。或节点的深度(它到根的距离)。或子节点的数量等。无论您的查询需要什么。