使用LINQ获取存储在表中的任务的依赖关系

本文关键字:任务 依赖 关系 LINQ 获取 存储 使用 | 更新日期: 2023-09-27 18:14:27

我有一个数据库,其中有一个表具有以下布局:

JobID   TaskID   DependantTaskID
--------------------------------
1000      20            19
1000      21            20

可以看到,它为每个作业以及该作业中的每个任务指定了依赖的任务标识符。我想写一些LINQ,给定一个作业返回每个任务和相关的依赖项,然后我可以适当地排序。这是我的LINQ:

var query = from t in Sys_JobDependantTasks
            where t.JobID == 1000
            select new
            {
                TaskId = t.Taskid,
                Dependencies = (from d in Sys_JobDependantTasks
                                where d.DependantTaskid == t.Taskid
                                select d.DependantTaskid).ToList()
            };
var result = query.ToList();
result.Dump();

…只是结果出乎意料。我:

TaskId          Dependencies
----------------------------
9304            9304
                9304

表的原始转储显示9304依赖于9633。我对LINQ很陌生,所以我想知道是否有什么明显的我做错了?

使用LINQ获取存储在表中的任务的依赖关系

我认为您需要将子查询更改为:

from d in Sys_JobDependantTasks
where d.TaskId == t.DependantTaskid
select d.TaskId