static internal ProjectedColumns ProjectColumns(Expression projector, Alias newAlias, bool isGroupKey = false, bool selectTrivialColumns = false) { var candidates = DbExpressionNominator.Nominate(projector, out Expression newProj, isGroupKey: isGroupKey); ColumnProjector cp = new ColumnProjector(candidates, newAlias, selectTrivialColumns); Expression e = cp.Visit(newProj); return(new ProjectedColumns(e, cp.generator.Columns.NotNull().ToReadOnly())); }