private void CreateTupleDescriptors() { tupleDescriptor = TupleDescriptor.Create( Columns.Select(c => c.ValueType).ToArray(Columns.Count)); keyTupleDescriptor = TupleDescriptor.Create( KeyColumns.Select(c => c.Key.ValueType).ToArray(KeyColumns.Count)); }
/// <summary> /// Adds key columns names to the table. The specified columns must exists on the table. /// </summary> /// <param name="keyColumnsNames"></param> /// <returns></returns> public TableBuilder WithKeyColumnsNames(params string[] keyColumnsNames) { foreach (var keyColumnName in keyColumnsNames) { KeyColumns.Add(keyColumnName); } return(this); }
/// <summary> /// Adds key columns to the table from the specified type properties. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="filter"></param> /// <returns></returns> public TableBuilder WithKeyColumnsFromTypeProperties <T>(Func <PropertyInfo, bool> filter) { foreach (var column in typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(filter).ToSqlColumns()) { Columns[column.Key] = column.Value; KeyColumns.Add(column.Key); } return(this); }
/// <summary> /// Populates <see cref="ValueColumns"/> collection by /// including all the columns except <see cref="IndexInfo.KeyColumns"/> /// into it. /// </summary> public void PopulateValueColumns() { var keySet = EnumerableExtensions.ToHashSet(KeyColumns.Select(kc => kc.Value)); foreach (var column in Parent.Columns.Where(c => !keySet.Contains(c))) { new ValueColumnRef(this, column); } }
/// <summary> /// Adds a key column to the table from the specified type. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="keyColumnName"></param> /// <param name="isIdentity"></param> /// <returns></returns> public TableBuilder WithKeyColumnFromType <T>(string keyColumnName, bool isIdentity = false) { if (keyColumnName == null) { throw new ArgumentNullException(nameof(keyColumnName)); } Columns[keyColumnName] = new SqlType(DbTypeMapper.GetDbType(typeof(T)), isIdentity); KeyColumns.Add(keyColumnName); return(this); }
public void AssignParameters(DbCommand command, object[] parameterValues) { for (int i = 0; i < KeyColumns.Count(); i++) { var parameter = command.CreateParameter(); parameter.ParameterName = string.Format("@{0}", KeyColumns[i]); parameter.Value = parameterValues[i]; command.Parameters.Add(parameter); } }
/// <inheritdoc/> /// <exception cref="ValidationException">Validation error.</exception> protected override void ValidateState() { using (var ea = new ExceptionAggregator()) { ea.Execute(base.ValidateState); base.ValidateState(); var tableColumns = Parent.Columns; var keys = KeyColumns.Select(keyRef => keyRef.Value).ToList(); var values = ValueColumns.Select(valueRef => valueRef.Value).ToList(); var all = keys.Concat(values).ToList(); if (keys.Count == 0) { ea.Execute(() => { throw new ValidationException(Strings.ExEmptyKeyColumnsCollection, Path); }); } if (keys.Where(ci => ci.Type.IsNullable).Count() > 0) { ea.Execute(() => { throw new ValidationException(Strings.ExPrimaryKeyColumnCanNotBeNullable, Path); }); } if (all.Count != tableColumns.Count) { ea.Execute(() => { throw new ValidationException(Strings.ExInvalidPrimaryKeyStructure, Path); }); } if (all.Zip(tableColumns).Where(p => p.First != p.Second).Any()) { ea.Execute(() => { throw new ValidationException(Strings.ExInvalidPrimaryKeyStructure, Path); }); } ea.Complete(); } }
/// <summary> /// Builds a table with the builder data. /// </summary> /// <returns></returns> public ITable Build() { return(new Table(Name, KeyColumns.ToArray(), Columns, Schema, SchemaSynchronized)); }
/// <inheritdoc/> /// <exception cref="ValidationException">Empty secondary key columns collection.</exception> protected override void ValidateState() { using (var ea = new ExceptionAggregator()) { ea.Execute(base.ValidateState); // Secondary key columns: empty set, duplicates var keyColumns = KeyColumns.Select(valueRef => valueRef.Value).ToList(); if (keyColumns.Count == 0) { ea.Execute(() => { throw new ValidationException(Strings.ExEmptyKeyColumnsCollection, Path); }); } foreach (var group in keyColumns .GroupBy(keyColumn => keyColumn) .Where(group => group.Count() > 1)) { ea.Execute((_column) => { throw new ValidationException( string.Format(Strings.ExMoreThenOneKeyColumnReferenceToColumnX, _column.Name), Path); }, group.Key); } // Primary key columns if (PrimaryKeyColumns.Count != Parent.PrimaryIndex.KeyColumns.Count) { ea.Execute(() => { throw new ValidationException(Strings.ExInvalidPrimaryKeyColumnsCollection, Path); }); } for (int i = 0; i < PrimaryKeyColumns.Count; i++) { var ref1 = PrimaryKeyColumns[i]; var ref2 = Parent.PrimaryIndex.KeyColumns[i]; if (ref1.Value != ref2.Value || ref1.Direction != ref2.Direction) { ea.Execute(() => { throw new ValidationException(Strings.ExInvalidPrimaryKeyColumnsCollection, Path); }); } } // Included columns var fullKeySet = EnumerableExtensions.ToHashSet(KeyColumns .Select(cr => cr.Value) .Concat(PrimaryKeyColumns.Select(cr => cr.Value))); foreach (var columnRef in IncludedColumns) { if (fullKeySet.Contains(columnRef.Value)) { ea.Execute(() => { throw new ValidationException(Strings.ExInvalidIncludedColumnsCollection, Path); }); } } foreach (var group in IncludedColumns .GroupBy(keyColumn => keyColumn) .Where(group => group.Count() > 1)) { ea.Execute((_column) => { throw new ValidationException( string.Format(Strings.ExMoreThenOneIncludedColumnReferenceToColumnX, _column.Name), Path); }, group.Key); } ea.Complete(); } }
/// <summary> /// Validate the Primary Keys only exist once in the sheet /// </summary> private void ValidatePrimaryKeysUnique(ICOBieSheetValidationTemplate SheetValidator) { var dupes = Rows .Select((v, i) => new { row = v, index = i }) //get COBieRow and its index in the list .GroupBy(r => r.row.GetPrimaryKeyValue.ToLower().Trim(), (key, group) => new { rowkey = key, rows = group }) //group by the primary key value(s) joint as a delimited string .Where(grp => grp.rows.Count() > 1); List <string> keyColList = new List <string>(); foreach (COBieColumn col in KeyColumns) { keyColList.Add(col.ColumnName); } string keyCols = string.Join(",", keyColList); //set the index for the reported error row numbers int errorRowInc = 2; //default for rows starting at row two - ErrorRowIndexBase.Two if (_errorRowIdx == ErrorRowIndexBase.RowOne) //if error row starting sow set the the row numbered one { errorRowInc = 1; } foreach (var dupe in dupes) { List <string> indexList = new List <string>(); foreach (var row in dupe.rows) { if (SheetValidator != null && SheetValidator.IsRequired.ContainsKey(row.index) && SheetValidator.IsRequired[row.index]) { indexList.Add((row.index + errorRowInc).ToString()); } } string rowIndexList = string.Join(",", indexList); foreach (var row in dupe.rows) { if (SheetValidator != null && SheetValidator.IsRequired.ContainsKey(row.index) && SheetValidator.IsRequired[row.index]) { string errorDescription = String.Format(ErrorDescription.PrimaryKey_Violation, keyCols, rowIndexList); COBieError error = new COBieError(SheetName, keyCols, errorDescription, COBieError.ErrorTypes.PrimaryKey_Violation, COBieError.ErrorLevels.Error, row.row.InitialRowHashValue, KeyColumns.First().ColumnOrder, (row.index + 1)); _errors.Add(error); } } } }
/// <summary> /// Specify the key column name /// </summary> /// <param name="columnName">Column name</param> public OneToManyPart <TChild> KeyColumn(string columnName) { KeyColumns.Clear(); KeyColumns.Add(columnName); return(this); }
public virtual string TransformText() { #line 4 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt" if (DbmsPlatform == "SQL Server") { #line default #line hidden this.Write("IF OBJECT_ID(N\'"); #line 1 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView)); #line default #line hidden this.Write("\', N\'V\') IS NULL\r\n\tEXECUTE (\'CREATE VIEW "); #line 2 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView)); #line default #line hidden this.Write(" AS SELECT NULL AS CREATE_OR_REPLACE\');\r\nGO\r\n\r\nALTER VIEW "); #line 5 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView)); #line default #line hidden this.Write(" AS\r\n-- This code was generated by "); #line 6 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(TemplateName)); #line default #line hidden this.Write(" @ "); #line 6 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DateTime.Now.ToString())); #line default #line hidden this.Write("\r\n"); #line 7 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" if (DbmsVersion > new Version(11, 0)) // SQL Server 2012 { #line default #line hidden this.Write("SELECT\r\n\tD."); #line 12 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden #line 12 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "S." + c).InsertRight())); #line default #line hidden this.Write("\r\nFROM\r\n\t(\r\n\t\tSELECT\r\n\t\t\t"); #line 16 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.InsertLeft())); #line default #line hidden this.Write("\r\n\t\t\t"); #line 17 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write("\t\tAS START$DATE,\r\n\t\t\tLEAD("); #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write(", 1, CAST(\'2999-12-31\' AS DATE)) OVER (PARTITION BY "); #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(Key_Columns)); #line default #line hidden this.Write(" ORDER BY "); #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write(")\r\n\t\t\t\t\t\t\t\t\t\tAS EXPIRE$DATE\r\n\t\tFROM\r\n\t\t\t"); #line 21 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceView)); #line default #line hidden this.Write("\r\n\t)\tS,\r\n\t"); #line 23 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyView)); #line default #line hidden this.Write("\tD\r\nWHERE\r\n\t\tS.EXPIRE$DATE > D."); #line 25 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden this.Write("\r\n\tAND S.START$DATE <= D."); #line 26 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden this.Write("\r\n"); #line 27 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" } else // SQL Server 2008, 2005 { #line default #line hidden this.Write("WITH TR AS\r\n(\r\n\tSELECT\r\n\t\t*,\r\n\t\tROW_NUMBER() OVER (PARTITION BY "); #line 36 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(Key_Columns)); #line default #line hidden this.Write(" ORDER BY "); #line 36 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write(") AS ROW$NUMBER\r\n\tFROM\r\n\t\t"); #line 38 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceView)); #line default #line hidden this.Write("\r\n)\r\nSELECT\r\n\tD."); #line 41 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden #line 41 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "S." + c).InsertRight())); #line default #line hidden this.Write("\r\nFROM\r\n\t(\r\n\t\tSELECT\r\n\t\t\t"); #line 45 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "t1." + c).InsertLeft())); #line default #line hidden this.Write("\r\n\t\t\tt1."); #line 46 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write("\t\t\t\t\t\t\t\t\t\t\tAS START$DATE,\r\n\t\t\tISNULL(t2."); #line 47 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write(", CAST(\'2999-12-31\' AS DATE))\t\tAS EXPIRE$DATE\r\n\t\tFROM\r\n\t\t\tTR t1 LEFT OUTER JOIN\r\n" + "\t\t\tTR t2 ON ("); #line 50 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(String.Join(" AND ", KeyColumns.Select(k => string.Format(@"t1.{0} = t2.{0}", k))))); #line default #line hidden this.Write("\r\n\t\t\t\tAND t1.ROW$NUMBER + 1 = t2.ROW$NUMBER)\r\n\t)\tS,\r\n\t"); #line 53 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyView)); #line default #line hidden this.Write("\tD\r\nWHERE\r\n\t\tS.EXPIRE$DATE > D."); #line 55 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden this.Write("\r\n\tAND S.START$DATE <= D."); #line 56 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden this.Write("\r\n"); #line 57 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.SqlServer.sql" } #line default #line hidden this.Write(@"; GO ---------------------------------------------------------------------------------------------------- -- -- Copyright 2013 Abel Cheng -- This source code is subject to terms and conditions of the Apache License, Version 2.0. -- See http://www.apache.org/licenses/LICENSE-2.0. -- All other rights reserved. -- You must not remove this notice, or any other, from this software. -- -- Original Author: Abel Cheng <*****@*****.**> -- Created Date: May 15, 2013, 11:25:04 PM -- Primary Host: http://t4sql.codeplex.com -- Change Log: -- Author Date Comment -- -- -- -- -- (Keep code clean) -- ---------------------------------------------------------------------------------------------------- "); this.Write("\r\n"); #line 9 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt" } else if (DbmsPlatform == "Oracle") { #line default #line hidden this.Write("CREATE OR REPLACE VIEW "); #line 1 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(ObjectView)); #line default #line hidden this.Write(" AS\r\nSELECT\r\n\t-- This code was generated by "); #line 3 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(TemplateName)); #line default #line hidden this.Write(" @ "); #line 3 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DateTime.Now.ToString())); #line default #line hidden this.Write("\r\n\tD."); #line 4 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden #line 4 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.Select(c => "S." + c).InsertRight())); #line default #line hidden this.Write("\r\nFROM\r\n\t(\r\n\t\tSELECT\r\n\t\t\t"); #line 8 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SelectColumns.InsertLeft())); #line default #line hidden this.Write("\r\n\t\t\t"); #line 9 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write("\t\tAS START$DATE,\r\n\t\t\tLEAD("); #line 10 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write(", 1, TO_DATE(\'2999-12-31\', \'YYYY-MM-DD\')) OVER (PARTITION BY "); #line 10 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(Key_Columns)); #line default #line hidden this.Write(" ORDER BY "); #line 10 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceDateColumn)); #line default #line hidden this.Write(")\r\n\t\t\t\t\t\t\t\t\t\tAS EXPIRE$DATE\r\n\t\tFROM\r\n\t\t\t"); #line 13 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(SourceView)); #line default #line hidden this.Write("\r\n\t)\tS,\r\n\t"); #line 15 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyView)); #line default #line hidden this.Write("\tD\r\nWHERE\r\n\t\tS.EXPIRE$DATE > D."); #line 17 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden this.Write("\r\n\tAND S.START$DATE <= D."); #line 18 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.Oracle.sql" this.Write(this.ToStringHelper.ToStringWithCulture(DailyDateColumn)); #line default #line hidden this.Write(@" WITH READ ONLY; ---------------------------------------------------------------------------------------------------- -- -- Copyright 2013 Abel Cheng -- This source code is subject to terms and conditions of the Apache License, Version 2.0. -- See http://www.apache.org/licenses/LICENSE-2.0. -- All other rights reserved. -- You must not remove this notice, or any other, from this software. -- -- Original Author: Abel Cheng <*****@*****.**> -- Created Date: May 15, 2013, 11:25:04 PM -- Primary Host: http://t4sql.codeplex.com -- Change Log: -- Author Date Comment -- -- -- -- -- (Keep code clean) -- ---------------------------------------------------------------------------------------------------- "); this.Write("\r\n"); #line 15 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt" } else { Error("T4SQL.Date.VTimePointsToSeries is not implemented for " + DbmsPlatform); } #line default #line hidden #line 21 "E:\Projects\T4SQL\T4SQLTemplateLibrary\T4Templates\Date\VTimePointsToSeries.tt" /* * Before building the project or checking in code, if any included file changes, * you should re-transform the including template in the solution by: * * Right-click one or more files in Solution Explorer and then click Run Custom Tool. * Use this method to transform a selected set of templates. * or * Click Transform All Templates in the Solution Explorer toolbar. * This will transform all the templates in the Visual Studio solution. * or * Installed Visual Studio Visualization and Modeling SDK * http://archive.msdn.microsoft.com/vsvmsdk, * And setup all the templates transformed automatically: * http://msdn.microsoft.com/en-us/library/dd820620.aspx#Regenerating * http://msdn.microsoft.com/en-us/library/ee847423.aspx * http://msdn.microsoft.com/en-us/library/ff521399.aspx */ #line default #line hidden return(this.GenerationEnvironment.ToString()); }
public AttributeDef(string name, Column[] keyColumns, Column nameColumn) : base(name) { KeyColumns.AddRange(keyColumns); NameColumn = nameColumn; }
/// <summary> /// Builds a table with the builder data. /// </summary> /// <returns></returns> public ITable Build() { return(new Table(Name, KeyColumns.ToArray(), Columns, Schema, SynchronizationStrategy)); }
public void FreezeReference(TableModel table, IEnumerable <TableModel> tables) { ReferenceTable = tables.FirstOrDefault(t => t.Property.Name == _referenceTable.Name); if (ReferenceTable == null) { throw BuilderError.SelectorNotMappedToTable(_referenceTable.Name, _referenceTable.DeclaringType.Name).AsException(); } ReferenceColumns = _referenceColumns.MatchColumns(ReferenceTable.Name, ReferenceTable.Columns).ToImmutableArray(); // If the name was not explicitly set then we generate one based on the table and column names if (Name == null) { Name = BuilderHelper.GenerateForeignKeyName(table.Schema, table.Name, KeyColumns.Select(c => c.Name), ReferenceTable.Schema, ReferenceTable.Name); } }