gpt4 book ai didi

具有递归关系的聚合计数的 LINQ 查询

转载 作者:行者123 更新时间:2023-12-01 05:30:12 25 4
gpt4 key购买 nike

抱歉,我想不出更好的标题! :)

我有一个叫做 Process 的表,它有一个递归关系来定义 Process-*Subprocess

现在,每个流程都可以附加一个或多个指标:Process-*Metric

所以我的进程表看起来像:

PROCESS
-------
ID
PID (fkey on Process.ID)

我的指标表如下所示:
METRIC
------
ID
PID (fkey on Process.ID)

将 LINQ 与 EF 一起使用,我可以构建一个将返回以下总和的查询:
  • 与流程关联的指标计数
  • 与作为该进程的后代的所有子进程关联的度量的计数

  • 如果可能,我正在寻找一种方法来通过一次对数据库的调用来返回此信息。

    谢谢!

    克里斯

    最佳答案

    基本上你有两个选择。

  • 将两个表读入内存并在代码中处理结果。适合小型收藏。
  • 创建具有递归 CTE 的 View 并在 EF 中映射该 View 。加入该 View 。编写起来更复杂,但提供最佳性能,尤其是对于大型集合。
  • 关于具有递归关系的聚合计数的 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11618556/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com