我有以下这些课程
public class Match
{
public int Id { get; set; }
public MatchType Type { get; set; }
public MatchStatus Status { get; set; }
public LeagueGroup LeagueGroup { get; set; }
public Tournament Tournament { get; set; }
public IList<Score> Scores { get; set; }
public IList<Team> Teams { get; set; }
}
public class Score
{
public int Id { get; set; }
public Team Team { get; set; }
public Nullable<int> Points { get; set; }
public Match Match { get; set; }
}
public class Team
{
public int Id { get; set; }
public IList<Competitor> Competitors { get; set; }
public IList<Match> Matches { get; set; }
public Team()
{
Competitors = new List<Competitor>();
Matches = new List<Match>();
}
}
public class Competitor
{
public int Id { get; set; }
public string CompetitorName { get; set; }
public int UserId { get; set; }
public DateTime SignUpDate { get; set; }
}
所以有一个匹配,其中有一个得分列表(通常是两个),这些得分有一个附加到他们的团队,然后每个团队都有一个竞争者列表(通常是1-2)。
我要做的是找到UserId为某个竞争对手的比赛得分(分数)。
所有比赛都会让用户参与其中,因此无需担心没有为他们找到分数。
我尝试了很多不同的组合,现在我坐下来了:
match.Scores.FirstOrDefault(x => x.Team.Competitors.FirstOrDefault(u => u.UserId == User.UserId)).Points.Value;
我认为我走错了方向,当我应该以另一种方式做的时候向外走。
非常感谢任何帮助
谢谢。
答案 0 :(得分:0)
找到答案。
match.Scores.FirstOrDefault(x => x.Team.Competitors.Any(u => u.UserId == User.UserId)).Points.Value;
所以这基本上就是说。
获取第一个分数的积分属性。
有一个团队,其中包含一个userId等于User objects Id
的竞争对手