public void LeaveGroup(User usr, Group grp) { usr.JoinedGroups.Remove(grp); grp.Users.Remove(usr); foreach (var subGroup in grp.GetAllSubGroups()) { usr.JoinedGroups.Remove(subGroup); subGroup.Users.Remove(usr); } db.SaveChanges(); }