diff --git a/Content.Server/Database/ServerDbBase.cs b/Content.Server/Database/ServerDbBase.cs index 0f3cbf2e11..fb8b2e487f 100644 --- a/Content.Server/Database/ServerDbBase.cs +++ b/Content.Server/Database/ServerDbBase.cs @@ -663,23 +663,16 @@ namespace Content.Server.Database { await using var db = await GetDb(); - var round = await db.DbContext.Round - .Include(round => round.Players) - .SingleAsync(round => round.Id == id); - - var players = await db.DbContext.Player + // ReSharper disable once SuggestVarOrType_Elsewhere + Dictionary players = await db.DbContext.Player .Where(player => playerIds.Contains(player.UserId)) - .ToListAsync(); + .ToDictionaryAsync(player => player.UserId, player => player.Id); - var playerSet = new HashSet(round.Players.Select(player => player.UserId)); - foreach (var player in players) + foreach (var player in playerIds) { - if (playerSet.Contains(player.UserId)) - { - continue; - } - - round.Players.Add(player); + await db.DbContext.Database.ExecuteSqlAsync($""" +INSERT INTO player_round (players_id, rounds_id) VALUES ({players[player]}, {id}) ON CONFLICT DO NOTHING +"""); } await db.DbContext.SaveChangesAsync();