public ColumnDeclaration MapColumn(ColumnExpression ce) { string columnName = GetUniqueColumnName(ce.Name); var result = new ColumnDeclaration(columnName, ce); columns.Add(result.Name, result); return result; }
public override Expression?Visit(Expression?expression) { if (this.candidates.Contains(expression !)) { if (expression is ColumnExpression column) { if (!projectTrivialColumns) { return(expression); } if (this.map.TryGetValue(column, out var mapped)) { return(mapped); } mapped = generator.MapColumn(column).GetReference(newAlias); this.map[column] = mapped; return(mapped); } else { if (expression !.Type.UnNullify().IsEnum) { var convert = expression.TryConvert(expression.Type.IsNullable() ? typeof(int?) : typeof(int)); return(generator.NewColumn(convert).GetReference(newAlias).TryConvert(expression.Type)); }