LINQ查询 - 复杂的自联接问题

时间:2010-08-31 21:40:12

标签: linq-to-sql asp.net-3.5

所以我有项目(这个例子说他们是名字和ID)。我还有一个名为SubProjects的表,如下所示:

MasterProjectID       SubProjectID
1                     2
1                     3
4                     5
4                     6
4                     7

主人不能是另一个主人的子。

我想返回一个项目ID列表。具体来说,我希望列表包含主项目ID及其所有子项目ID。

换句话说,如果projectID == 4且pdc是我的DataContext,我的查询应返回:

4
5
6
7

以下linq查询不返回任何内容:

   from j in pdc.Projects
   join s in pdc.SubProjects on j.ProjectID equals s.SubProjectID
   where j.ProjectID.Equals(projectID) || s.MasterProjectID.Equals(projectID)
   select j.ProjectID;

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您只需使用以下命令检索子项目列表:

var query = from j in pdc.SubProjects
            where j.MasterProjectID == projectID
            select j.SubProjectID;

...然后手动追加/添加已知值projectID

var list = query.ToList();
list.Add(projectID);