public CatalogDefinition ToCatalog(DataSet dataset) { var schema = ToSchema(dataset.Tables); var catalog = new CatalogDefinition(); catalog.AddSchema(schema); return(catalog); }
public void Entity_ToCompressedStream() { var catalog = new CatalogDefinition("company_catalog", _owner); var schema = catalog.AddSchema(_owner); var jobTable = schema.AddTable("job"); var jobPkColumn = jobTable.AddColumn("id", DbType.Int32); jobPkColumn.IsPrimaryKey = true; jobPkColumn.PrimaryKey.IsAutoIncrement = true; var jobNameColumn = jobTable.AddColumn("name", DbType.String); jobNameColumn.MaxLength = 256; jobNameColumn.IsUnique = true; var employeeTable = schema.AddTable("employee"); employeeTable.AddComment("employees and their date of employment"); var pkColumn = employeeTable.AddColumn("id", DbType.Int32); pkColumn.IsPrimaryKey = true; pkColumn.PrimaryKey.IsAutoIncrement = true; var jobIdColumn = employeeTable.AddColumn("job_id", DbType.Int32); jobIdColumn.HasForeignKey = true; jobIdColumn.ForeignKey.Schema = schema.Name; jobIdColumn.ForeignKey.Table = jobTable.Name; jobIdColumn.ForeignKey.Column = jobPkColumn.Name; var firstNameColumn = employeeTable.AddColumn("first_name", DbType.String); firstNameColumn.MaxLength = 256; firstNameColumn.IsNullable = false; var lastNameColumn = employeeTable.AddColumn("last_name", DbType.String); lastNameColumn.MaxLength = 256; lastNameColumn.IsNullable = false; var ssnColumn = employeeTable.AddColumn("ssn", DbType.String); ssnColumn.MaxLength = 11; ssnColumn.IsNullable = false; var doeColumn = employeeTable.AddColumn("doe", DbType.Date); doeColumn.AddComment("date of employment"); doeColumn.IsNullable = false; var dobColumn = employeeTable.AddColumn("dob", DbType.Date); var index = employeeTable.AddIndex("employee_name_idx"); index.AddColumn(lastNameColumn, Directions.Ascending); index.AddColumn(firstNameColumn); index.AddColumn(ssnColumn); index.IsUnique = true; using (var stream1 = catalog.ToCompressedStream()) { stream1.Position = 0; var cat = stream1.ToEntityFromCompressedStream <CatalogDefinition>(); using (var stream2 = cat.ToCompressedStream()) { stream1.Position = 0; stream2.Position = 0; Assert.AreEqual(stream1.Length, stream2.Length); var bytes1 = stream1.ToArray(); var bytes2 = stream2.ToArray(); Assert.IsTrue(bytes1.SequenceEqual(bytes2)); } } }
public void Entity_ToJson() { var catalog = new CatalogDefinition("company_catalog", _owner); var schema = catalog.AddSchema(_owner); var jobTable = schema.AddTable("job"); var jobPkColumn = jobTable.AddColumn("id", DbType.Int32); jobPkColumn.IsPrimaryKey = true; jobPkColumn.PrimaryKey.IsAutoIncrement = true; var jobNameColumn = jobTable.AddColumn("name", DbType.String); jobNameColumn.MaxLength = 256; jobNameColumn.IsUnique = true; var employeeTable = schema.AddTable("employee"); employeeTable.AddComment("employees and their date of employment"); var pkColumn = employeeTable.AddColumn("id", DbType.Int32); pkColumn.IsPrimaryKey = true; pkColumn.PrimaryKey.IsAutoIncrement = true; var jobIdColumn = employeeTable.AddColumn("job_id", DbType.Int32); jobIdColumn.HasForeignKey = true; jobIdColumn.ForeignKey.Schema = schema.Name; jobIdColumn.ForeignKey.Table = jobTable.Name; jobIdColumn.ForeignKey.Column = jobPkColumn.Name; var firstNameColumn = employeeTable.AddColumn("first_name", DbType.String); firstNameColumn.MaxLength = 256; firstNameColumn.IsNullable = false; var lastNameColumn = employeeTable.AddColumn("last_name", DbType.String); lastNameColumn.MaxLength = 256; lastNameColumn.IsNullable = false; var ssnColumn = employeeTable.AddColumn("ssn", DbType.String); ssnColumn.MaxLength = 11; ssnColumn.IsNullable = false; var doeColumn = employeeTable.AddColumn("doe", DbType.Date); doeColumn.AddComment("date of employment"); doeColumn.IsNullable = false; var dobColumn = employeeTable.AddColumn("dob", DbType.Date); var index = employeeTable.AddIndex("employee_name_idx"); index.AddColumn(lastNameColumn, Directions.Ascending); index.AddColumn(firstNameColumn); index.AddColumn(ssnColumn); index.IsUnique = true; var json1 = catalog.ToJson(); var cat = json1.ToEntity <CatalogDefinition>(); var json2 = cat.ToJson(); Assert.AreEqual(json1, json2); }