public override int GetHashCode() { unchecked { var hashCode = GeneratedLine.GetHashCode(); hashCode = (hashCode * 397) ^ GeneratedColumn.GetHashCode(); hashCode = (hashCode * 397) ^ OriginalLine.GetHashCode(); hashCode = (hashCode * 397) ^ OriginalColumn.GetHashCode(); hashCode = (hashCode * 397) ^ (Source != null ? Source.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0); return(hashCode); } }
internal void AddGeneratedColumn(GeneratedColumn c) { bool isIdentity = false; string defaultValue = null; switch (c.SqlType) { case SqlType.INT: case SqlType.BIGINT: isIdentity = true; break; case SqlType.UNIQUEIDENTIFIER: defaultValue = "NEWID()"; break; case SqlType.DATE: case SqlType.SMALLDATETIME: case SqlType.DATETIME: case SqlType.DATETIME2: case SqlType.DATETIMEOFFSET: defaultValue = "GETUTCDATE()"; break; default: throw new Exception($"Invalid data type for auto-generated column: {c.SqlType}"); } Columns.Add(new Column { Name = c.Name, SqlType = c.SqlType, Precision = c.Precision, IsIdentity = isIdentity, IsPrimaryKey = c.IsPrimaryKey, DefaultValue = defaultValue, IsNullable = false }); }