4

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

我有一个名为 Process 的表,它具有定义 Process-*Subprocess 的递归关系

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

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

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

我的指标表看起来像:

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

将 LINQ 与 EF 一起使用,我可以构建一个返回以下总和的查询:

  • 与进程关联的指标计数
  • 与作为该进程后代的所有子进程关联的指标的计数

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

谢谢!

克里斯

4

1 回答 1

1

基本上你有两个选择。

  1. 将两个表读入内存并在代码中处理结果。适合小型收藏。
  2. 创建具有递归 CTE 的视图并在 EF 中映射该视图。加入那个观点。写起来更复杂,但性能最好,尤其是对于大型集合。
于 2012-07-23T18:57:16.703 回答