LINQ Query - Сложные проблемы с самостоятельным присоединением - PullRequest
0 голосов
/ 01 сентября 2010

Итак, у меня есть проекты (в этом примере говорят, что они - имя и идентификатор). У меня также есть таблица с именем SubProjects, например:

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

Мастер не может быть подчиненным другого мастера.

Я хочу вернуть список идентификаторов проекта. В частности, я хочу, чтобы список содержал идентификатор основного проекта и все идентификаторы его вспомогательного проекта.

Другими словами, если 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 голосов
/ 01 сентября 2010

Вы можете получить список подпроектов просто с помощью:

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

... Затем вручную добавьте / добавьте известное значение projectID.

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