static void Main(string[] args)
    {
        var id = 0;

        using (var dbContext = new MyContext())
        {
            var department = new Department();
            department.AddFaculty(FacultyEnum.Eng);
            department.AddFaculty(FacultyEnum.Math);
            dbContext.Department.Add(department);
            var department2 = new Department();
            department2.AddFaculty(FacultyEnum.Math);
            dbContext.Department.Add(department2);
            dbContext.SaveChanges();
            id = department.Id;
        }
        using (var dbContext = new MyContext())
        {
            var department = dbContext.Department.Find(id);
            department.AddFaculty(FacultyEnum.Eco);
            dbContext.SaveChanges();
        }
        using (var dbContext = new MyContext())
        {
            var department = dbContext.Department.Find(id);
            var faculty    = department.Faculties.Where(x => x.Id == (int)FacultyEnum.Eng).FirstOrDefault();
            department.Faculties.Remove(faculty);
            dbContext.SaveChanges();
        }
        using (var dbContext = new MyContext())
        {
            var department = dbContext.Department.Find(id);
            Console.WriteLine($"Department Id {department.Id} has these faculties:");
            foreach (var faculty in department.Faculties)
            {
                Console.WriteLine($"- {faculty.Id}");
            }
        }
        Debugger.Break();
    }