Присоединение к группе VB.NET LINQ, за которым следует другая группа - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть две коллекции объектов в VB.NET, которые я хочу связать вместе с помощью объединения и, возможно, сгруппировать вместе. В основном мои объекты выглядят так:

Учреждение

  • ID
  • Имя

Посетить домашнюю страницу

  • ID
  • InstitutionID
  • Дата
  • IsFollowUp
  • IsSelfScheduled

Посещение должно быть в учреждении, но посещение учреждения также может не проводиться. Я могу связать их вместе с помощью LINQ, но я не могу заставить учреждения, в которых нет посещений, также появиться в списке (что я и ищу). Я знаю, что должен использовать групповое объединение, но не могу понять, как включить существующее объединение.

From p In visitList Where p.IsFollowUp = False AndAlso p.IsSelfScheduled = False
Group p By Key = p.InstitutionID Into grp = Group
Select InstitutionID = Key, Visits = grp, LastVisitDate = grp.FirstOrDefault().ProvisionalDate

Если худшее приходит к худшему, я могу реализовать закрытый класс, чтобы делать то, что я хочу, но, похоже, это должно быть что-то простое в LINQ.

Edit:

Хорошо, используя ссылку ниже, которую разместил Тим, мне удалось придумать что-то вроде этого:

From i In institutionList
Select InstitutionID = i.ID, Name = i.Name, Inspections = 
(
   From p In visitList Where p.InstitutionID = i.ID Select p
)

Он использует подзапрос для извлечения соответствующей информации, но неважно, эффективен он или нет, я понятия не имею. Кажется, вытащить соответствующую информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...