Linq para Sql, recuperando estruturas de dados aninhadas com uma consulta

Não tenho certeza se já existe uma resposta para isso, pois não consigo descobrir o mecanismo do Linq para essa situação ou se preciso apenas fazê-lo manualmente.

Digamos que eu tenha 2 tabelas:

------------Employees-------------
EmployeeID  Name  -other columns-

   ---------EmployeeSkills-----------
   EmployeeID  Skill  -other columns-

Portanto, cada funcionário pode ter 0 ou mais habilidade

Meu objetivo é desenhar essas informações em uma estrutura de dados na memória, usando uma consulta sql

    class StaticEmployee
    {
        int EmployeeID;       
        string Name;
        List<string> Skills;
    }
    List<StaticEmployee> employees = (???).ToList();

Como minhas relações de tabela estão configuradas, eu poderia apenas foreach a tabela de funcionários from employee in db.Employees selecione employee), no entanto, quando eu acessar a propriedade EmployeeSkills, ele executará uma consulta separada para cada registro de funcionário, pois esses dados não foram retornados com a primeira consult

Alternativamente, e eu o que eu quero fazer no que diz respeito ao SQL, execute uma consulta com uma junção esquerda:

SELECT Employees.EmployeeID, Employees.Name, EmployeeSkills.Skill FROM Employees LEFT JOIN EmployeeSkills ON Employees.EmployeeID=EmployeeSkills.EmployeeID

Isso me dará minha lista, mas precisarei agrupá-la manualmente em minha lista, pois um funcionário com 2 habilidades retornará 2 linhas. Existe uma operação Linq que faz isso? Exemplo hipotético abaixo

from employee in db.Employees
select new 
{
   EmployeeID = employee.EmployeeID, 
   Name = employee.Name,
   Skills = new List(
                     from employeeSkill in employee.EmployeeSkills 
                     select employeeSkill.skill
                    )
}

questionAnswers(1)

yourAnswerToTheQuestion