Exemplo n.º 1
0
        public SchemaConstraintLoader(SchemaExtendedReader schemaReader)
        {
            _sr = schemaReader;
            var pks = _sr.PrimaryKeys(null);

            _noPks = (pks.Rows.Count == 0);
            if (!_noPks)
            {
                _pkConverter = new SchemaConstraintConverter(pks, ConstraintType.PrimaryKey);
            }
            var fks = _sr.ForeignKeys(null);

            _noFks = (fks.Rows.Count == 0);
            if (!_noFks)
            {
                _fkConverter = new SchemaConstraintConverter(fks, ConstraintType.ForeignKey);
            }
            //foreign key columns
            var fkcols = _sr.ForeignKeyColumns(null);

            _fkColumnConverter = new ForeignKeyColumnConverter(fkcols);

            var uks = _sr.UniqueKeys(null);

            _ukConverter = new SchemaConstraintConverter(uks, ConstraintType.UniqueKey);
            var cks = _sr.CheckConstraints(null);

            _ckConverter = new SchemaConstraintConverter(cks, ConstraintType.Check);

            var dfs = _sr.DefaultConstraints(null);

            _dfConverter = new SchemaConstraintConverter(dfs, ConstraintType.Default);
        }
        public SchemaConstraintLoader(SchemaExtendedReader schemaReader)
        {
            _sr = schemaReader;
            var pks = _sr.PrimaryKeys(null);
            _noPks = (pks.Rows.Count == 0);
            if (!_noPks)
            {
                _pkConverter = new SchemaConstraintConverter(pks, ConstraintType.PrimaryKey);
            }
            var fks = _sr.ForeignKeys(null);
            _noFks = (fks.Rows.Count == 0);
            if (!_noFks)
            {
                _fkConverter = new SchemaConstraintConverter(fks, ConstraintType.ForeignKey);
            }
            //foreign key columns
            var fkcols = _sr.ForeignKeyColumns(null);
            _fkColumnConverter = new ForeignKeyColumnConverter(fkcols);

            var uks = _sr.UniqueKeys(null);
            _ukConverter = new SchemaConstraintConverter(uks, ConstraintType.UniqueKey);
            var cks = _sr.CheckConstraints(null);
            _ckConverter = new SchemaConstraintConverter(cks, ConstraintType.Check);

            var dfs = _sr.DefaultConstraints(null);
            _dfConverter = new SchemaConstraintConverter(dfs, ConstraintType.Default);
        }
Exemplo n.º 3
0
        private void AddConstraints(DataSet ds, DatabaseTable table)
        {
            if (ds.Tables.Contains(_schemaReader.PrimaryKeysCollectionName))
            {
                var converter = new SchemaConstraintConverter(ds.Tables[_schemaReader.PrimaryKeysCollectionName],
                                                              ConstraintType.PrimaryKey);
                var pkConstraints = converter.Constraints();
                PrimaryKeyLogic.AddPrimaryKey(table, pkConstraints);
            }
            if (ds.Tables.Contains(_schemaReader.ForeignKeysCollectionName))
            {
                var converter = new SchemaConstraintConverter(ds.Tables[_schemaReader.ForeignKeysCollectionName],
                                                              ConstraintType.ForeignKey);
                table.AddConstraints(converter.Constraints());
            }
            if (ds.Tables.Contains(_schemaReader.ForeignKeyColumnsCollectionName))
            {
                var fkConverter = new ForeignKeyColumnConverter(ds.Tables[_schemaReader.ForeignKeyColumnsCollectionName]);
                fkConverter.AddForeignKeyColumns(table.ForeignKeys);
            }

            if (ds.Tables.Contains(_schemaReader.UniqueKeysCollectionName))
            {
                var converter = new SchemaConstraintConverter(ds.Tables[_schemaReader.UniqueKeysCollectionName],
                                                              ConstraintType.UniqueKey);
                table.AddConstraints(converter.Constraints());
            }
        }
        public override IList <DatabaseConstraint> ForeignKeys(string tableName)
        {
            var dt                = _schemaReader.ForeignKeys(tableName);
            var fkcols            = _schemaReader.ForeignKeyColumns(tableName);
            var converter         = new SchemaConstraintConverter(dt, ConstraintType.ForeignKey);
            var fks               = converter.Constraints();
            var fkColumnConverter = new ForeignKeyColumnConverter(fkcols);

            fkColumnConverter.AddForeignKeyColumns(fks);
            return(fks);
        }
Exemplo n.º 5
0
        private IList <DatabaseConstraint> ForeignKeys(string tableName, string schemaName)
        {
            IList <DatabaseConstraint> fks;

            if (!_noFks)
            {
                //we have preloaded
                fks = _fkConverter.Constraints(tableName, schemaName);
                _fkColumnConverter.AddForeignKeyColumns(fks);
                return(fks);
            }
            var constraints = _sr.ForeignKeys(tableName);
            var converter   = new SchemaConstraintConverter(constraints, ConstraintType.ForeignKey);

            fks = converter.Constraints();
            var cols         = _sr.ForeignKeyColumns(tableName);
            var colConverter = new ForeignKeyColumnConverter(cols);

            colConverter.AddForeignKeyColumns(fks);
            return(fks);
        }
 private IList<DatabaseConstraint> ForeignKeys(string tableName, string schemaName)
 {
     IList<DatabaseConstraint> fks;
     if (!_noFks)
     {
         //we have preloaded
         fks = _fkConverter.Constraints(tableName, schemaName);
         _fkColumnConverter.AddForeignKeyColumns(fks);
         return fks;
     }
     var constraints = _sr.ForeignKeys(tableName);
     var converter = new SchemaConstraintConverter(constraints, ConstraintType.ForeignKey);
     fks = converter.Constraints();
     var cols = _sr.ForeignKeyColumns(tableName);
     var colConverter = new ForeignKeyColumnConverter(cols);
     colConverter.AddForeignKeyColumns(fks);
     return fks;
 }
Exemplo n.º 7
0
        /// <summary>
        /// Gets the table. If <see cref="Owner"/> is specified, it is used.
        /// </summary>
        /// <param name="tableName">Name of the table. Oracle names can be case sensitive.</param>
        public DatabaseTable Table(string tableName)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                throw new ArgumentNullException("tableName");
            }

            DatabaseTable table;

            using (DataSet ds = _sr.Table(tableName))
            {
                if (ds == null)
                {
                    return(null);
                }
                if (ds.Tables.Count == 0)
                {
                    return(null);
                }

                table = DatabaseSchema.FindTableByName(tableName);
                if (table == null)
                {
                    table = new DatabaseTable();
                    DatabaseSchema.Tables.Add(table);
                }
                table.Name        = tableName;
                table.SchemaOwner = _sr.Owner;
                //columns must be done first as it is updated by the others
                table.Columns.Clear();
                var columnConverter = new ColumnConverter(ds.Tables[_sr.ColumnsCollectionName]);
                table.Columns.AddRange(columnConverter.Columns());
                if (ds.Tables.Contains(_sr.PrimaryKeysCollectionName))
                {
                    var converter     = new SchemaConstraintConverter(ds.Tables[_sr.PrimaryKeysCollectionName], ConstraintType.PrimaryKey);
                    var pkConstraints = converter.Constraints();
                    PrimaryKeyLogic.AddPrimaryKey(table, pkConstraints);
                }
                if (ds.Tables.Contains(_sr.ForeignKeysCollectionName))
                {
                    var converter = new SchemaConstraintConverter(ds.Tables[_sr.ForeignKeysCollectionName], ConstraintType.ForeignKey);
                    table.AddConstraints(converter.Constraints());
                }
                if (ds.Tables.Contains(_sr.ForeignKeyColumnsCollectionName))
                {
                    var fkConverter = new ForeignKeyColumnConverter(ds.Tables[_sr.ForeignKeyColumnsCollectionName]);
                    fkConverter.AddForeignKeyColumns(table.ForeignKeys);
                }

                if (ds.Tables.Contains(_sr.UniqueKeysCollectionName))
                {
                    var converter = new SchemaConstraintConverter(ds.Tables[_sr.UniqueKeysCollectionName], ConstraintType.UniqueKey);
                    table.AddConstraints(converter.Constraints());
                }

                var indexConverter = new IndexConverter(ds.Tables[_sr.IndexColumnsCollectionName], null);
                table.Indexes.AddRange(indexConverter.Indexes(tableName));

                if (ds.Tables.Contains(_sr.IdentityColumnsCollectionName))
                {
                    SchemaConstraintConverter.AddIdentity(ds.Tables[_sr.IdentityColumnsCollectionName], table);
                }
            }

            if (DatabaseSchema.DataTypes.Count > 0)
            {
                DatabaseSchemaFixer.UpdateDataTypes(DatabaseSchema);
            }
            _sr.PostProcessing(DatabaseSchema);

            return(table);
        }
Exemplo n.º 8
0
        private void AddConstraints(DataSet ds, DatabaseTable table)
        {
            if (ds.Tables.Contains(_schemaReader.PrimaryKeysCollectionName))
            {
                var converter = new SchemaConstraintConverter(ds.Tables[_schemaReader.PrimaryKeysCollectionName],
                    ConstraintType.PrimaryKey);
                var pkConstraints = converter.Constraints();
                PrimaryKeyLogic.AddPrimaryKey(table, pkConstraints);
            }
            if (ds.Tables.Contains(_schemaReader.ForeignKeysCollectionName))
            {
                var converter = new SchemaConstraintConverter(ds.Tables[_schemaReader.ForeignKeysCollectionName],
                    ConstraintType.ForeignKey);
                table.AddConstraints(converter.Constraints());
            }
            if (ds.Tables.Contains(_schemaReader.ForeignKeyColumnsCollectionName))
            {
                var fkConverter = new ForeignKeyColumnConverter(ds.Tables[_schemaReader.ForeignKeyColumnsCollectionName]);
                fkConverter.AddForeignKeyColumns(table.ForeignKeys);
            }

            if (ds.Tables.Contains(_schemaReader.UniqueKeysCollectionName))
            {
                var converter = new SchemaConstraintConverter(ds.Tables[_schemaReader.UniqueKeysCollectionName],
                    ConstraintType.UniqueKey);
                table.AddConstraints(converter.Constraints());
            }
        }