2013-09-13 3 views
0

Вот мой сценарий:Как запросить вложенное свойство от родительского объекта

  • У меня есть объект игрока
  • игрок содержит TeamMembers IList (игрок может быть, кроме нескольких команд, если он подлодки для другой команды)
  • TeamMembers maps to определенная команда
  • У команды есть сезонная собственность.

Что я хочу: Найдите ВСЕ сезонов, которые находятся отдельно от игрока.

player.TeamMembers[0].Team.Season даст мне текущее время года. Я хочу все возможности, поскольку TeamMembers.Count может быть более одного.

Это то, что я пробовал до сих пор и получаю много ошибок «красной подсветки» с синтаксисом.

var seasons = _seasonRepository.Query() 
       .Where(s => s.Teams 
          .Where(t => t.TeamMembers 
             .Where(tm => tm.Player.PlayerId == player.PlayerId))); 
+0

@DmitryDovgopoly спасибо, этот материал LINQ еще очень ново для меня. Не знаю, почему ваш ответ больше не существует, но он сработал ... – ganders

+0

он может удалить свой ответ, не понимая вашу проблему. –

ответ

0

использование Any() вместо вашей вложенной Where

_seasonRepository.Query() 
       .Where(s => s.Teams 
          .Any(t => t.TeamMembers 
             .Any(tm => tm.Player.PlayerId == player.PlayerId))); 

или версии Дмитрия

player.TeamMembers.Select(tm => tm.Team.Season).Distinct(); 
+0

С тех пор, как Дмитрий не вернул ответ, я принимаю это ... – ganders

Смежные вопросы