NOTE: You can find the source code here.
Schema Overview
// Department
public class Department
{
public int DepartmentId { get; set; }
public string Name { get; set; } = string.Empty;
public ICollection<Employee> Employees { get; set; } = [];
}
// Employee
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; } = string.Empty;
public int DepartmentId { get; set; }
public Department Department { get; set; } = null!;
public ICollection<EmployeeSkill> EmployeeSkills { get; set; } = [];
}
// Skills
public class Skill
{
public int SkillId { get; set; }
public string Name { get; set; } = string.Empty;
public ICollection<EmployeeSkill> EmployeeSkills { get; set; } = [];
}
// EmployeeSkills (Junction table)
public class EmployeeSkill
{
public int EmployeeId { get; set; }
public int SkillId { get; set; }
public Employee Employee { get; set; } = null!;
public Skill Skill { get; set; } = null!;
}
In simpler terms:
[Read More]






