private void CompileTableTypeInfo(CompilerInputTableTypeSelector tableTypeSelector) { var tableTypeInfoBuilder = this.m_outputBuilder.CreateTableTypeInfoBuilder(tableTypeSelector.FullName); var schema = this.m_store.GetTableTypeSchema(tableTypeSelector.FullName); var columnInfos = schema.Columns.OfType<DataColumn>().Select(dc => new DataColumnInfo(dc)); tableTypeInfoBuilder.RegisterColumns(columnInfos); foreach (var dataRowContractMapping in tableTypeSelector.Mappings) { var contract = this.m_input.FindContractByInterfaceName(dataRowContractMapping.InterfaceName); //tableTypeInfoBuilder.RegisterMapping(contract, dataRowContractMapping); } tableTypeInfoBuilder.Accept(); }
internal CompilerInput(ICompilerInput other, int ordinal = 0) { this.Ordinal = ordinal; Debug.Assert(!ReferenceEquals(other, null), "other is null"); if(!ReferenceEquals(other.Contracts, null)) { foreach(var item in other.Contracts) { if(!ReferenceEquals(item, null)) { var clone = new CompilerInputContract(item, this.Contracts.Count ); this.Contracts.Add( clone ); } } } if(!ReferenceEquals(other.TableTypes, null)) { foreach(var item in other.TableTypes) { if(!ReferenceEquals(item, null)) { var clone = new CompilerInputTableTypeSelector(item, this.TableTypes.Count ); this.TableTypes.Add( clone ); } } } if(!ReferenceEquals(other.QueryStoredProcedures, null)) { foreach(var item in other.QueryStoredProcedures) { if(!ReferenceEquals(item, null)) { var clone = new CompilerInputQueryStoredProcedureSelector(item, this.QueryStoredProcedures.Count ); this.QueryStoredProcedures.Add( clone ); } } } OnCreated(); }