Exemplo n.º 1
0
        private async Task <TableInfo> CreateTableInfo(IContext context)
        {
            var tableName = await context.ResolveTableNameAsync(TableName);

            var idColumnCount = Columns.Count(x => x.IsIdentity);

            if (idColumnCount > 1)
            {
                throw new InvalidOperationException("More than one IDENTITY column specified.");
            }

            bool ignoreCase    = context.IgnoreCase();
            var  columnChecker = new TableColumnChecker(Columns, ignoreCase);


            var tableInfo = new TableInfo(tableName);

            foreach (var column in Columns)
            {
                var columnInfo = CreateColumnInfo(context, tableName.Name, column, columnChecker);

                if (column.IsIdentity)
                {
                    columnInfo.DefaultValue = SqlExpression.Function("UNIQUEKEY", SqlExpression.Constant(tableName.ToString()));
                }

                tableInfo.Columns.Add(columnInfo);
            }

            return(tableInfo);
        }
        private TableInfo CreateTableInfo(IRequest context)
        {
            var tableName = context.Access().ResolveTableName(TableName);

            var idColumnCount = Columns.Count(x => x.IsIdentity);

            if (idColumnCount > 1)
            {
                throw new InvalidOperationException("More than one IDENTITY column specified.");
            }

            bool ignoreCase    = context.Query.IgnoreIdentifiersCase();
            var  columnChecker = new TableColumnChecker(Columns, ignoreCase);


            var tableInfo = new TableInfo(tableName);

            foreach (var column in Columns)
            {
                var columnInfo = CreateColumnInfo(context, tableName.Name, column, columnChecker);

                if (column.IsIdentity)
                {
                    columnInfo.DefaultExpression = SqlExpression.FunctionCall("UNIQUEKEY", new SqlExpression[] {
                        SqlExpression.Constant(tableName.ToString())
                    });
                }

                tableInfo.AddColumn(columnInfo);
            }

            return(tableInfo);
        }
Exemplo n.º 3
0
        private TableInfo CreateTableInfo(IRequest context)
        {
            var tableName = context.Query.ResolveTableName(TableName);

            var idColumnCount = Columns.Count(x => x.IsIdentity);

            if (idColumnCount > 1)
            {
                throw new InvalidOperationException("More than one IDENTITY column specified.");
            }

            bool ignoreCase    = context.Query.IgnoreIdentifiersCase();
            var  columnChecker = new TableColumnChecker(Columns, ignoreCase);


            var tableInfo = new TableInfo(tableName);

            foreach (var column in Columns)
            {
                var columnInfo = CreateColumnInfo(tableName.Name, column, columnChecker);
                tableInfo.AddColumn(columnInfo);
            }

            return(tableInfo);
        }
Exemplo n.º 4
0
        private ColumnInfo CreateColumnInfo(string tableName, SqlTableColumn column, TableColumnChecker columnChecker)
        {
            var expression = column.DefaultExpression;

            if (column.IsIdentity && expression != null)
            {
                throw new InvalidOperationException(String.Format("Identity column '{0}' cannot define a DEFAULT expression.", column.ColumnName));
            }

            if (expression != null)
            {
                expression = columnChecker.CheckExpression(expression);
            }


            var columnName = columnChecker.StripTableName(tableName, column.ColumnName);

            return(new ColumnInfo(columnName, column.ColumnType)
            {
                DefaultExpression = expression,
                IsNotNull = column.IsNotNull
            });
        }
        private ColumnInfo CreateColumnInfo(string tableName, SqlTableColumn column, TableColumnChecker columnChecker)
        {
            var expression = column.DefaultExpression;

            if (column.IsIdentity && expression != null)
                throw new InvalidOperationException(String.Format("Identity column '{0}' cannot define a DEFAULT expression.", column.ColumnName));

            if (expression != null)
                expression = columnChecker.CheckExpression(expression);

            var columnName = columnChecker.StripTableName(tableName, column.ColumnName);

            return new ColumnInfo(columnName, column.ColumnType) {
                DefaultExpression = expression,
                IsNotNull = column.IsNotNull
            };
        }
        private TableInfo CreateTableInfo(IRequest context)
        {
            var tableName = context.Query.ResolveTableName(TableName);

            var idColumnCount = Columns.Count(x => x.IsIdentity);
            if (idColumnCount > 1)
                throw new InvalidOperationException("More than one IDENTITY column specified.");

            bool ignoreCase = context.Query.IgnoreIdentifiersCase();
            var columnChecker = new TableColumnChecker(Columns, ignoreCase);

            var tableInfo = new TableInfo(tableName);

            foreach (var column in Columns) {
                var columnInfo = CreateColumnInfo(tableName.Name, column, columnChecker);
                tableInfo.AddColumn(columnInfo);
            }

            return tableInfo;
        }
Exemplo n.º 7
0
        private ColumnInfo CreateColumnInfo(IContext context, string tableName, SqlTableColumn column, TableColumnChecker columnChecker)
        {
            var expression = column.DefaultExpression;

            if (column.IsIdentity && expression != null)
            {
                throw new InvalidOperationException($"Identity column '{column.ColumnName}' cannot define a DEFAULT expression.");
            }

            if (expression != null)
            {
                expression = columnChecker.CheckExpression(expression);
            }


            var columnName = columnChecker.StripTableName(tableName, column.ColumnName);
            // TODO: support for dynamic types such as #ROW ?
            var columnType = column.ColumnType;

            return(new ColumnInfo(columnName, columnType, expression));
        }
Exemplo n.º 8
0
        private TableInfo CreateTableInfo(IRequest context)
        {
            var tableName = context.Access().ResolveTableName(TableName);

            var idColumnCount = Columns.Count(x => x.IsIdentity);
            if (idColumnCount > 1)
                throw new InvalidOperationException("More than one IDENTITY column specified.");

            bool ignoreCase = context.Query.IgnoreIdentifiersCase();
            var columnChecker = new TableColumnChecker(Columns, ignoreCase);

            var tableInfo = new TableInfo(tableName);

            foreach (var column in Columns) {
                var columnInfo = CreateColumnInfo(context, tableName.Name, column, columnChecker);

                if (column.IsIdentity)
                    columnInfo.DefaultExpression = SqlExpression.FunctionCall("UNIQUEKEY", new SqlExpression[] {
                        SqlExpression.Constant(tableName.ToString())
                    });

                tableInfo.AddColumn(columnInfo);
            }

            return tableInfo;
        }