如何从父实体查询嵌套属性
本文关键字:查询 嵌套 属性 实体 | 更新日期: 2023-09-27 18:31:16
这是我的方案:
- 我有一个播放器对象 球员
- 包含队员IList(如果一名球员替补另一支球队,他可能是多支球队的一员)
- 团队成员映射到特定团队
- 球队有一个赛季属性。
我想要的:找到所有与球员分开的赛季。
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)));
使用 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();