public DatabaseCSharpDiagramGenerator (ConnectionSettings connectionSettings) { this.connSettings = connectionSettings; metadataReader = new DatabaseReader(connSettings.ConnectionString, connSettings.ServerType); metadataReader.Owner = connSettings.Schema; tables = metadataReader.AllTables(); views = metadataReader.AllViews(); }
public void TestSqlConnectionConstructor() { //also used by NetStandard using (var con = new SqlConnection(ConnectionStrings.Northwind)) { var dr = new DatabaseReader(con); var tables = dr.AllTables(); Assert.IsTrue(tables.Count > 0); } }
public static void RunSample() { Console.WriteLine("1. Get Metadata."); GetMetadata(); Console.WriteLine("\n2. Get Entity Set."); using (var dbReader = new DatabaseReader(connectionString, "System.Data.SqlClient")) { foreach (var table in dbReader.AllTables()) { Console.WriteLine("\n 2.1 Get Entity Set '" + table.Name + "'."); GetEntitySet(table.Name); } } }
public async Task <ActionResult <ResourceMetaData> > GetMetaData([FromRouteAttribute] string domain, [FromRouteAttribute] string resource) { using (var connection = new SqlConnection(ConnectionString)) { var dbReader = new DatabaseReader(connection); var metaData = new ResourceMetaData() { Name = resource, Fields = dbReader.AllTables().First(z => z.Name == resource && z.SchemaOwner == domain).Columns.Select(z => new Field() { Name = z.Name, Type = z.IsForeignKey ? Url.Action("GetMetaData", new { domain = z.SchemaOwner, resource = z.Name }) : z.DataType.NetDataTypeCSharpName }).ToArray() }; return(Ok(metaData)); } }
public void TestSqlConnectionConstructor() { //also used by NetStandard using (var con = new SqlConnection(ConnectionStrings.Northwind)) { if (!CheckNorthwindExists(con)) { Assert.Inconclusive($"Could not access Northwind {con.ConnectionString}"); return; } var dr = new DatabaseReader(con); var tables = dr.AllTables(); Assert.IsTrue(tables.Count > 0); } }
public void TestSqlConnectionConstructorWithNoConnectionString() { //also used by NetStandard using (var con = new SqlConnection()) { var dr = new DatabaseReader(con); try { dr.AllTables(); Assert.Fail("Should have errored"); } catch (InvalidOperationException) { Assert.IsTrue(true, "No connection string"); } } }
public void TestSqlConnectionConstructorWithNoConnectionString() { //also used by NetStandard using (var con = new SqlConnection()) { if (!CheckNorthwindExists(con)) { Assert.Inconclusive($"Could not access Northwind {con.ConnectionString}"); return; } var dr = new DatabaseReader(con); try { dr.AllTables(); Assert.Fail("Should have errored"); } catch (InvalidOperationException) { Assert.IsTrue(true, "No connection string"); } } }
/// <summary> /// The import. /// </summary> /// <param name="options"> /// The options. /// </param> /// <returns> /// The <see cref="DatabaseModel"/>. /// </returns> public DatabaseModel Import(object options) { Logger.Trace("Started Import()"); DatabaseModel result = new DatabaseModel(); AdoSourceOptions adoOptions = options as AdoSourceOptions; if (adoOptions == null) { return(result); } //foreach (var schemaOwner in adoOptions.Schemas) { var databaseReader = new DatabaseReader(adoOptions.ConnectionString, adoOptions.ProviderName); databaseReader.Exclusions.TableFilter.FilterExclusions.Add("sysdiagrams"); databaseReader.Exclusions.TableFilter.FilterExclusions.Add("__migrationhistory"); databaseReader.Exclusions.TableFilter.FilterExclusions.Add("__MigrationHistory"); databaseReader.Exclusions.TableFilter.FilterExclusions.Add("sys_config"); databaseReader.AllTables(); databaseReader.AllViews(); // databaseReader.AllStoredProcedures(); //but not this one! // var schemaMetaData = databaseReader.ReadAll(); var schemaMetaData = databaseReader.DatabaseSchema; List <DatabaseTable> tables = schemaMetaData.Tables //.Where(t => t.Name != "sysdiagrams" && t.Name != "__migrationhistory" && t.Name != "__MigrationHistory") .ToList(); foreach (var table in tables) { if (adoOptions.Schemas.Any(s => s == table.SchemaOwner)) { DatabaseSchemaFixer.UpdateReferences(schemaMetaData); var newTable = new Table { TableName = table.Name, SchemaName = table.SchemaOwner }; result.Tables.Add(newTable); this.AddColumns(table, newTable); this.AddforeignKeys(table, schemaMetaData, newTable); this.AddforeignKeyChildren(table, schemaMetaData, newTable); FormatNavigationPropertiesToBeUnique(newTable); AddIndexes(table, newTable); } } } this.Fix(result); Logger.Trace("Completed Import()"); return(result); }