-1

我正在使用 LINQ to SQL。

我有一个项目表。我也有一个任务表。一个任务可以有一个项目。

我想要一个可以返回没有任何任务的项目列表的查询。

以下是我如何找到项目的所有任务:

   public static IEnumerable<Task> GetAllByProject(int? projectID)
   {
         KezberPMDBDataContext db = new KezberPMDBDataContext();
         return from p in db.Tasks
                where p.ProjectID == projectID
                select p;
   }

现在我需要找到上述查询没有返回任何内容的所有项目。

4

1 回答 1

3
return db.Projects.Where(p=>!p.Tasks.Any())

假设 Project 和 Task 之间存在 FK 关系,并且是一对多的。否则,让我们从所有任务中找到项目 id,然后找到这些 id 之外的项目。

var taskProjectIds = db.Tasks.Select(t=>t.ProjectId).Distinct();
return db.Projects.Where(p=>!taskProjectIds.Any(p.Id))
于 2013-01-18T19:02:09.463 回答