Linq2Sql: otimização de consulta

Eu tenho a seguinte consulta:

Obtenha uma lista dos IDs de equipe necessários do DB:

       , IList<int> teamIds =
            (from sector in DbContext.sectors
             where sector.Type=typeValue
             group sector by sector.TeamId into teamSectors
             select teamSectors.Key
            ).ToList();

O uso desta lista busca todos os setores para as equipes necessárias:

IList<InfrStadSector> sectorsForAllTeams = (from sector in DbContext.sectors
                         where teamIds.Contains(sector.TeamId)
                         select sector
                        ).ToList();

Crie uma lista de estádios com base em setores:

IList<InftStadium> stadiums = new List<InfrStadium>();
foreach(int teamId in teamIds)
{
    IList<InfrStadSector> teamSectors = 
        sectorsForAllTeams.Where(sect=>sect.TeamId==teamIds).ToList();
    stadiums.Add(new InfrStadium(teamId, teamSectors);
}

Minha preocupação aqui é que, para a coleta recebida do DB, eu preciso aplicar a Where / ToList no lado do cliente uma vez por cada equipe

Existe alguma maneira de otimizar isso?

Obrigado.

P.S. Potencialmente, eu poderia classificar itens no servidor (usando o índice), depois classificar teamIds e trabalhar com a coleção de setores sem realmente 'consultar' a coleção ... mas provavelmente existe uma maneira melhor de otimizar isso?

questionAnswers(1)

yourAnswerToTheQuestion