private void CreateColumnRefs() { List <ColumnRefBinding> tableColumnRefs = new List <ColumnRefBinding>(); if (!(_definition is DerivedTableBinding) && !(_definition is CommonTableBinding)) { // Create special row column ref ColumnRefBinding rowColumnRefBinding = CreateRowColumnRefBinding(this); tableColumnRefs.Add(rowColumnRefBinding); } // Create all column refs. foreach (ColumnBinding columnDefinition in _definition.Columns) { ColumnRefBinding columnRefBinding = new ColumnRefBinding(this, columnDefinition); RowBufferEntry rowBufferEntry = new RowBufferEntry(columnRefBinding.ColumnBinding.DataType); rowBufferEntry.Name = columnRefBinding.GetFullName(); ColumnValueDefinition columnValueDefinition = new ColumnValueDefinition(); columnValueDefinition.Target = rowBufferEntry; columnValueDefinition.ColumnRefBinding = columnRefBinding; columnRefBinding.ValueDefinition = columnValueDefinition; tableColumnRefs.Add(columnRefBinding); } // Assign column refs to table ref. _columnRefs = tableColumnRefs.ToArray(); }
private static ColumnRefBinding CreateRowColumnRefBinding(TableRefBinding tableRefBinding) { RowColumnBinding rowColumnBinding = new RowColumnBinding(tableRefBinding.TableBinding); ColumnRefBinding rowColumnRefBinding = new ColumnRefBinding(tableRefBinding, rowColumnBinding); RowBufferEntry rowColumnBufferEntry = new RowBufferEntry(rowColumnRefBinding.ColumnBinding.DataType); rowColumnBufferEntry.Name = rowColumnRefBinding.TableRefBinding.Name; ColumnValueDefinition rowColumnValueDefinition = new ColumnValueDefinition(); rowColumnValueDefinition.Target = rowColumnBufferEntry; rowColumnValueDefinition.ColumnRefBinding = rowColumnRefBinding; rowColumnRefBinding.ValueDefinition = rowColumnValueDefinition; return(rowColumnRefBinding); }