我与这三个实体有一对多的关系:
class Tournamnet{
int Id
string Name
ICollection Games<Game>
},
class Game{
int Id
int TournamentId
ICollection PlayerGames<PlayerGame>
}
class PlayerGame{
int Id
int GameId
int PlayerId
bool IsWinner
}
我想以 JSON 格式获取有关锦标赛的所有数据,
public Tournament GetById(int id)
{
var tournament = tournamentTable
.Include(tournament => tournament.Game)
.ThenInclude(game => game.PlayerGame)
.FirstOrDefault(x => x.Id == id);
return tournament;
}
这是我的查询,这里的每个锦标赛都有一个游戏集合,每个游戏都有两个玩家游戏,一个是赢家=真,另一个是赢家=假,我需要让玩家游戏按GameID排序,我该如何解决这个问题......?
我需要按GameId订购PlayerGames,我该如何解决这个问题...?
首先确保玩家游戏是可以排序的集合类型。
例如
IList<PlayerGame> PlayerGames {get;set;} = new List<PlayerGame>()
然后只需在从数据库中获取后对其进行排序即可。
t.PlayerGames = t.PlayerGames.OrderBy(g => g.GameId).ToList();
或者,您可以创建一个自定义 ICollection 实现,该实现始终按 T 的属性之一排序,但没有一个内置的,这似乎工作量太大。