Linq to Sql, recuperando estructuras de datos anidados con una consulta

No estoy seguro de si ya existe una respuesta para esto, ya que no puedo entender qué mecanismo en Linq está destinado a esta situación, o si solo necesito hacerlo manualmente.

Digamos que tengo 2 tablas:

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

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

e modo que cada empleado puede tener 0 o más habilidades.

Mi objetivo es dibujar esta información en una estructura de datos en la memoria, utilizando una consulta sql

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

Desde que mis relaciones con la mesa están configuradas, podría predecir la mesa de los empleados de empleado en db. Los empleados seleccionan empleado), sin embargo, cuando accedo a la propiedad EmployeeSkills, se ejecutará una consulta separada para cada registro de empleado ya que esos datos no se devolvieron con la primera consulta.

Alternativamente, y lo que quiero hacer en lo que respecta a SQL, es ejecutar una consulta con una combinación izquierda:

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

Eso me dará mi lista, pero tendré que clasificarla manualmente en mi lista ya que un empleado con 2 habilidades devolverá 2 filas. @ ¿Hay una operación de Linq que hace esto? Ejemplo hipotético a continuación

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta