public virtual IList <T> GetAll(params Expression <Func <T, object> >[] navigationProperties) { IList <T> list; using (var context = new SchoolDBEntities()) { IQueryable <T> dbQuery = context.Set <T>(); //Apply eager loading foreach (Expression <Func <T, object> > navigationProperty in navigationProperties) { dbQuery = dbQuery.Include <T, object>(navigationProperty); } list = dbQuery .ToList <T>(); } return(list); }