internal Scope(ExecutionBuilder.Scope outer, ParameterExpression fieldReader, TableAlias alias, IEnumerable <ColumnDeclaration> columns) { this.outer = outer; this.fieldReader = fieldReader; this.Alias = alias; //this.nameMap = columns.Select(((Func<ColumnDeclaration, int, <>f__AnonymousType0<ColumnDeclaration, int>>) ((c, i) => new { c = c, i = i }))).ToDictionary(x => x.c.Name, x => x.i); }
internal bool TryGetValue(ColumnExpression column, out ParameterExpression fieldReader, out int ordinal) { for (ExecutionBuilder.Scope scope = this; scope != null; scope = scope.outer) { if ((column.Alias == scope.Alias) && this.nameMap.TryGetValue(column.Name, out ordinal)) { fieldReader = this.fieldReader; return(true); } } fieldReader = null; ordinal = 0; return(false); }