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(); }