/// <summary> /// When overriden in derived class, retrieves a collection of all /// references in the database defined by the <see cref="connectionString"/>. /// </summary> /// <param name="connectionString"></param> /// <param name="databaseSchema"></param> protected override void GetReferenceDefinitions(string connectionString, Core.SemanticModel.Schema databaseSchema) { WithDatabase(connectionString, delegate(Database database) { database.PrefetchObjects(typeof(Table)); foreach (Table table in database.Tables) { if (table.IsSystemObject) continue; foreach (ForeignKey foreignKey in table.ForeignKeys) { if (foreignKey.IsSystemNamed) continue; IReferenceDefinition referenceDefinition = GetReferenceDefinition(table, foreignKey); ITableDefinition fkTable = databaseSchema.GetTable(referenceDefinition.FkTableSchema, referenceDefinition.FkTable); fkTable.AddReference(referenceDefinition); } // foreach } // foreach }); }
/// <summary> /// When overriden in derived class, retrieves a collection of all /// indexes in the database defined by the <see cref="connectionString"/>. /// </summary> /// <param name="connectionString"></param> /// <param name="databaseSchema"></param> protected override void GetIndexDefinitions(string connectionString, Core.SemanticModel.Schema databaseSchema) { WithDatabase(connectionString, delegate(Database database) { database.PrefetchObjects(typeof(Table)); foreach (Table table in database.Tables) { if (table.IsSystemObject) continue; foreach (Index index in table.Indexes) { if (index.IsSystemNamed) continue; IIndexDefinition indexDefinition = GetIndexDefinition(table, index); ITableDefinition indexTable = databaseSchema.GetTable(table.Schema, table.Name); indexTable.AddIndex(indexDefinition); } // foreach } // foreach }); }