0

这是我的场景:

  • 我有一个玩家对象
  • Player 包含一个 TeamMembers IList(如果一名球员替补另一支球队,他可能属于多个球队)
  • TeamMembers 映射到特定团队
  • 球队有一个赛季属性。

我想要什么:找到一个球员的所有赛季。

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)));
4

1 回答 1

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();
于 2013-09-13T14:17:11.200 回答