public void ForeignKeys() { InitDatabase(); string sql = LoadEmbeddedResource("ForeignKeys.sql"); using (var conn = OpenConnection(true)) { using (var cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.ExecuteNonQuery(); } var factory = new SqlServerDatabaseFactory(); var analyser = factory.CreateAnalyser(); analyser.Connection = conn; analyser.FullAnalysis(); var result = analyser.Structure; Assert.AreEqual(2, result.Tables.Count); var table = result.Tables.Find(t => t.Name == "Test2"); Assert.AreEqual(1, table.ForeignKeys.Count); var fk = table.ForeignKeys[0]; Assert.AreEqual("ID_TEST1", fk.RefColumns[0].RefColumn.Name); Assert.AreEqual("ID_TEST1", fk.Columns[0].RefColumn.Name); Assert.AreEqual("Test1", fk.RefTable.Name); } }
public void OneTable() { InitDatabase(); string sql = LoadEmbeddedResource("OneTable.sql"); using (var conn = OpenConnection(true)) { using (var cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.ExecuteNonQuery(); } var factory = new SqlServerDatabaseFactory(); var analyser = factory.CreateAnalyser(); analyser.Connection = conn; analyser.FullAnalysis(); var result = analyser.Structure; Assert.AreEqual(1, result.Tables.Count); var table = result.Tables[0]; Assert.AreEqual(2, table.Columns.Count); Assert.AreEqual("ID", table.Columns[0].Name); Assert.AreEqual("Name", table.Columns[1].Name); Assert.AreEqual(true, table.Columns[0].AutoIncrement); Assert.IsNotNull(table.PrimaryKey); } }
public async Task GetMapForTypeWithParentAsync() { // Arrange var database = await SqlServerDatabaseFactory .ImportAsync("server=(local);database=AdventureWorks2017;integrated security=yes;"); // Act var mapForName = database.DatabaseTypeMaps.FirstOrDefault(item => item.DatabaseType == "Name"); var parentType = mapForName.GetParentType(database.DatabaseTypeMaps); // Assert Assert.False(mapForName == null); Assert.False(parentType == null); Assert.True(parentType.GetClrType() == typeof(string)); }
public void ImportNorthwindTablesAndViews() { // Arrange // Act var database = SqlServerDatabaseFactory .ImportTablesAndViews("server=(local);database=Northwind;integrated security=yes;", "dbo.Orders", "dbo.Order Details", "dbo.Category Sales for 1997", "dbo.Product Sales for 1997"); // Assert Assert.True(database.Tables.Count == 2); Assert.True(database.Views.Count == 2); }
/// <summary> /// Adds an extended property for database object /// </summary> /// <param name="databaseFactory">Instance of <see cref="SqlServerDatabaseFactory"/> class</param> /// <param name="view">Instance of <see cref="View"/> class</param> /// <param name="name">Extended property name</param> /// <param name="value">Extended property value</param> public static void AddExtendedProperty(this SqlServerDatabaseFactory databaseFactory, IView view, string name, string value) { using (var connection = databaseFactory.GetConnection()) { connection.Open(); var repository = new ExtendedPropertyRepository(connection); repository.AddExtendedProperty(new ExtendedProperty(name, "schema", view.Schema, "view", view.Name) { Value = value }); view.Description = value; } }
public void ImportTablesFromOnLineStoreDatabaseTest() { // Arrange and Act var database = SqlServerDatabaseFactory .ImportTables(SqlServerDatabaseFactory.GetLogger(), "server=(local);database=OnLineStore;integrated security=yes;", "Sales.OrderHeader", "Sales.OrderDetail"); // Assert Assert.True(database.Tables.Count == 2); Assert.True(database.FindTable("Sales.OrderHeader").Columns.Count > 0); Assert.True(database.FindTable("Sales.OrderHeader").PrimaryKey != null); Assert.True(database.FindTable("Sales.OrderHeader").ForeignKeys.Count > 0); Assert.True(database.FindTable("Sales.OrderDetail").ForeignKeys.Count > 0); Assert.True(database.Views.Count == 0); }
/// <summary> /// Adds an extended property for database object /// </summary> /// <param name="databaseFactory">Instance of <see cref="SqlServerDatabaseFactory"/> class</param> /// <param name="table">Instance of <see cref="Table"/> class</param> /// <param name="column">Instance of <see cref="Column"/> class</param> /// <param name="name">Extended property name</param> /// <param name="value">Extended property value</param> public static void AddExtendedProperty(this SqlServerDatabaseFactory databaseFactory, ITable table, Column column, string name, string value) { using (var connection = databaseFactory.GetConnection()) { connection.Open(); var repository = new ExtendedPropertyRepository(connection); repository.AddExtendedProperty(new ExtendedProperty(name, "schema", table.Schema, "table", table.Name, "column", column.Name) { Value = value }); column.Description = value; } }
public void TestCollegeExportScript() { // Arrange var database = SqlServerDatabaseFactory.CreateWithDefaults("College"); var student = database .DefineEntity(new { StudentId = 0, FirstName = "", MiddleName = "", LastName = "" }) .SetNaming("Student") .SetColumnFor(p => p.FirstName, type: "nvarchar", length: 10) .SetColumnFor(p => p.MiddleName, type: "nvarchar", length: 10, nullable: true) .SetColumnFor(p => p.LastName, type: "nvarchar", length: 10) .SetIdentity(p => p.StudentId) .SetPrimaryKey(e => e.StudentId) .AddExtendedProperty(p => p.FirstName, "MS_Description", "First name") .AddExtendedProperty(p => p.MiddleName, "MS_Description", "Middle name") .AddExtendedProperty(p => p.LastName, "MS_Description", "Last name"); var course = database .DefineEntity(new { CourseId = 0, Name = "" }) .SetNaming("Course") .SetColumnFor(e => e.Name, type: "nvarchar", length: 255) .SetIdentity(e => e.CourseId, seed: 1000, increment: 1000) .SetPrimaryKey(e => e.CourseId) .AddUnique(e => e.Name); var courseStudent = database .DefineEntity(new { CourseStudentId = 0, CourseId = 0, StudentId = 0 }) .SetNaming("CourseStudent") .SetIdentity(p => p.CourseStudentId) .SetPrimaryKey(p => p.CourseStudentId) .AddUnique(p => new { p.CourseId, p.StudentId }) .AddForeignKey(p => p.CourseId, course.Table) .AddForeignKey(p => p.StudentId, student.Table); // Act var codeBuilder = new SqlServerDatabaseScriptCodeBuilder { Database = database, OutputDirectory = "C:\\Temp\\CatFactory.SqlServer", ForceOverwrite = true }; codeBuilder.CreateFile(); // Assert }
public void ImportWithLoggerStoreTablesTest() { // Arrange var logger = LoggerMocker.GetLogger <SqlServerDatabaseFactory>(); // Act var database = SqlServerDatabaseFactory .ImportTables( logger, "server=(local);database=Store;integrated security=yes;", "Sales.Order", "Sales.OrderDetail"); // Assert Assert.True(database.Tables.Count == 2); Assert.True(database.Views.Count == 0); }
public void ImportOnLineStoreDatabaseTest() { // Arrange and Act var database = SqlServerDatabaseFactory .Import(SqlServerDatabaseFactory.GetLogger(), "server=(local);database=OnLineStore;integrated security=yes;"); // Assert Assert.True(database.Tables.Count > 0); Assert.True(database.FindTable("Warehouse.Product").Columns.Count > 0); Assert.True(database.FindTable("Warehouse.Product").PrimaryKey != null); Assert.True(database.FindTable("Warehouse.Product").ForeignKeys.Count > 0); Assert.True(database.Views.Count > 0); Assert.True(database.FindView("Sales.OrderSummary").Columns.Count > 0); }
public async Task ImportOnlineStoreDatabaseAsync() { // Arrange and Act var database = await SqlServerDatabaseFactory .ImportAsync("server=(local);database=OnlineStore;integrated security=yes;"); // Assert Assert.True(database.Tables.Count > 0); Assert.True(database.FindTable("Warehouse.Product").Columns.Count > 0); Assert.True(database.FindTable("Warehouse.Product").PrimaryKey != null); Assert.True(database.FindTable("Warehouse.Product").ForeignKeys.Count > 0); Assert.True(database.Views.Count > 0); Assert.True(database.FindView("Sales.OrderSummary").Columns.Count > 0); }
public void ImportTablesAndViewsFromNorthwindTest() { // Arrange and Act var database = SqlServerDatabaseFactory .ImportTablesAndViews("server=(local);database=Northwind;integrated security=yes;", "dbo.Orders", "dbo.Order Details", "dbo.Category Sales for 1997", "dbo.Product Sales for 1997"); // Assert Assert.True(database.Tables.Count == 2); Assert.True(database.FindTable("dbo.Orders").Columns.Count > 0); Assert.True(database.FindTable("dbo.Orders").PrimaryKey != null); Assert.True(database.Views.Count == 2); }
public void TestProjectSelectionScope() { // Arrange // Import database var database = SqlServerDatabaseFactory .Import(SqlServerDatabaseFactory.GetLogger(), "server=(local);database=OnLineStore;integrated security=yes;", "dbo.sysdiagrams"); // Create instance of Entity Framework Core project var project = new EntityFrameworkCoreProject { Name = "OnLineStore", Database = database, OutputDirectory = "C:\\Temp\\CatFactory.EntityFrameworkCore\\OnLineStore" }; // Act // Apply settings for Entity Framework Core project project.GlobalSelection(settings => { settings.ForceOverwrite = true; settings.ConcurrencyToken = "Timestamp"; settings.AuditEntity = new AuditEntity { CreationUserColumnName = "CreationUser", CreationDateTimeColumnName = "CreationDateTime", LastUpdateUserColumnName = "LastUpdateUser", LastUpdateDateTimeColumnName = "LastUpdateDateTime" }; }); project.Selection("Sales.OrderHeader", settings => settings.EntitiesWithDataContracts = true); var orderHeader = database.FindTable("Sales.OrderHeader"); var selectionForOrder = project.GetSelection(orderHeader); // Assert Assert.True(project.Selections.Count == 2); Assert.True(project.GlobalSelection().Settings.EntitiesWithDataContracts == false); Assert.True(selectionForOrder.Settings.EntitiesWithDataContracts == true); }
public void ProjectScaffoldingFromNorthwindDatabase() { // Import database var databaseFactory = new SqlServerDatabaseFactory(SqlServerDatabaseFactory.GetLogger()) { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=Northwind;integrated security=yes;", ImportScalarFunctions = true, ImportTableFunctions = true, ImportStoredProcedures = true, Exclusions = { "dbo.sp_alterdiagram", "dbo.sp_creatediagram", "dbo.sp_dropdiagram", "dbo.sp_helpdiagramdefinition", "dbo.sp_helpdiagrams", "dbo.sp_renamediagram", "dbo.sp_upgraddiagrams", "dbo.sysdiagrams", "dbo.fn_diagramobjects" } } }; var database = databaseFactory.Import(); // Create instance of Dapper Project var project = DapperProject.Create("Northwind.Core", database, @"C:\Temp\CatFactory.Dapper\Northwind.Core"); // Apply settings for project project.GlobalSelection(settings => settings.ForceOverwrite = true); project.Selection("dbo.Ten Most Expensive Products", settings => settings.UseStringBuilderForQueries = false); // Build features for project, group all entities by schema into a feature project.BuildFeatures(); // Scaffolding =^^= project .ScaffoldEntityLayer() .ScaffoldDataLayer(); }
public void ProjectScaffoldingFromAdventureWorksDatabaseTest() { // Import database var databaseFactory = new SqlServerDatabaseFactory(SqlServerDatabaseFactory.GetLogger()) { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=AdventureWorks2017;integrated security=yes;", ImportTableFunctions = true, ImportScalarFunctions = true, Exclusions = { "dbo.sysdiagrams" }, ExclusionTypes = { "geography" } } }; var database = databaseFactory.Import(); // Create instance of Dapper Project var project = new DapperProject { Name = "AdventureWorks.Core", Database = database, OutputDirectory = @"C:\Temp\CatFactory.Dapper\AdventureWorks.Core" }; // Apply settings for project project.GlobalSelection(settings => settings.ForceOverwrite = true); project.Selection("Sales.SalesOrderHeader", settings => settings.AddPagingForGetAllOperation = true); // Build features for project, group all entities by schema into a feature project.BuildFeatures(); // Scaffolding =^^= project .ScaffoldEntityLayer() .ScaffoldDataLayer(); }
public void ProjectScaffoldingFromAdventureWorksDatabaseTest() { // Import database var factory = new SqlServerDatabaseFactory(LoggerMocker.GetLogger <SqlServerDatabaseFactory>()) { ConnectionString = "server=(local);database=AdventureWorks2012;integrated security=yes;", ImportSettings = new DatabaseImportSettings { Exclusions = new List <string> { "dbo.sysdiagrams" }, ExclusionTypes = new List <string> { "geography" }, ImportTableFunctions = true } }; var database = factory.Import(); // Create instance of Dapper Project var project = new DapperProject { Name = "AdventureWorks", Database = database, OutputDirectory = @"C:\Temp\CatFactory.Dapper\AdventureWorks.Dapper.API\src\AdventureWorks.Dapper.API" }; // Apply settings for project project.GlobalSelection(settings => { settings.ForceOverwrite = true; }); // Build features for project, group all entities by schema into a feature project.BuildFeatures(); // Scaffolding =^^= project .ScaffoldEntityLayer() .ScaffoldDataLayer(); }
public void ImportWideWorldImportersDatabase() { // Arrange var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=WideWorldImporters;integrated security=yes;" } }; // Act var database = databaseFactory.Import(); // Assert Assert.True(database.FindTable("Warehouse.StockItems").Columns.Count > 0); Assert.True(database.FindTable("Warehouse.StockItems")["Tags"].Computed == "yes"); Assert.True(database.FindTable("Warehouse.StockItems").Defaults.Count > 0); }
public async Task ImportNorthwindDatabaseAsync() { // Arrange and Act var database = await SqlServerDatabaseFactory .ImportAsync("server=(local);database=Northwind;integrated security=yes;", "dbo.ChangeLog"); // Assert Assert.True(database.Tables.Count > 0); Assert.True(database.FindTable("dbo.ChangeLog") == null); Assert.True(database.FindTable("dbo.Products").Columns.Count > 0); Assert.True(database.FindTable("dbo.Products").PrimaryKey != null); Assert.True(database.FindTable("dbo.Products").ForeignKeys.Count > 0); Assert.True(database.FindTable("dbo.Products").Defaults.Count > 0); Assert.True(database.FindTable("dbo.Products").Checks.Count > 0); Assert.True(database.Views.Count > 0); Assert.True(database.FindView("dbo.Invoices").Columns.Count > 0); }
public void TestDropExtendedPropertiesForColumnFromView() { // Arrange var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=Store;integrated security=yes;", ExtendedProperties = { "MS_Description" } } }; // Act var database = databaseFactory.Import(); var view = database.FindView("HumanResources.EmployeeInfo"); databaseFactory.DropExtendedPropertyIfExists(view, view.GetColumn("EmployeeName"), "MS_Description"); }
public void GenerateProceduresFromExistingDatabaseTest() { // Arrange var database = SqlServerDatabaseFactory.Import("server=(local);database=OnLineStore;integrated security=yes;"); // Act foreach (var table in database.Tables) { var codeBuilder = new SqlStoredProcedureCodeBuilder { Database = database, Table = table, OutputDirectory = "C:\\Temp\\CatFactory.SqlServer\\StoredProceduresFromExistingDatabase", ForceOverwrite = true }; codeBuilder.CreateFile(); } // Assert }
public void ImportAdventureWorksDatabase() { // Arrange var databaseFactory = new SqlServerDatabaseFactory(SqlServerDatabaseFactory.GetLogger()) { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=AdventureWorks2017;integrated security=yes;", ImportStoredProcedures = true, ImportScalarFunctions = true, ImportTableFunctions = true, ExclusionTypes = { "geography" } } }; // Act var database = databaseFactory.Import(); // Assert foreach (var table in database.Tables) { var flag = table.Columns.FirstOrDefault(item => item.Name == "SpatialLocation") == null ? false : true; Assert.False(flag); } Assert.True(database.FindTable("Sales.SalesOrderHeader").Columns.Count > 0); Assert.True(database.FindTable("Sales.SalesOrderHeader").Indexes.Count > 0); Assert.True(database.FindTable("Sales.SalesOrderHeader").PrimaryKey != null); Assert.True(database.FindTable("Sales.SalesOrderHeader").ForeignKeys.Count > 0); Assert.True(database.FindView("Production.vProductAndDescription").Columns.Count > 0); Assert.True(database.FindView("Production.vProductAndDescription").Indexes.Count > 0); Assert.True(database.TableFunctions.FirstOrDefault(item => item.FullName == "dbo.ufnGetContactInformation").Parameters.Count == 1); Assert.True(database.StoredProcedures.FirstOrDefault(item => item.FullName == "HumanResources.uspUpdateEmployeeHireInfo").FirstResultSetsForObject.Count == 0); }
public void ProjectScaffoldingForWideWorldImportersDatabaseTest() { // Create database factory var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=WideWorldImporters;integrated security=yes;", ImportTableFunctions = true, Exclusions = { "dbo.sysdiagrams", "dbo.fn_diagramobjects" } } }; // Import database var database = databaseFactory.Import(); // Create instance of Entity Framework Core project var project = new EntityFrameworkCoreProject { Name = "WideWorldImporters.Core", Database = database, OutputDirectory = @"C:\Temp\CatFactory.EntityFrameworkCore\WideWorldImporters.Core" }; // Apply settings for Entity Framework Core project project.GlobalSelection(settings => settings.ForceOverwrite = true); // Build features for project, group all entities by schema into a feature project.BuildFeatures(); // Scaffolding =^^= project .ScaffoldEntityLayer() .ScaffoldDataLayer(); }
public void TestDropExtendedPropertiesForDatabase() { // Arrange var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=Store;integrated security=yes;", ExtendedProperties = { "MS_Description" } } }; // Act var database = databaseFactory.Import(); databaseFactory.DropExtendedPropertyIfExists("MS_Description"); // Assert }
public void TestAddExtendedPropertiesForColumnFromView() { // Arrange var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=Store;integrated security=yes;", ExtendedProperties = { "MS_Description" } } }; // Act var database = databaseFactory.Import(); var view = database.FindView("Sales.OrderSummary"); databaseFactory.DropExtendedPropertyIfExists(view, view.GetColumn("CustomerName"), "MS_Description"); databaseFactory.AddExtendedProperty(view, view.GetColumn("CustomerName"), "MS_Description", "Name for customer (CompanyName)"); }
public async Task ScaffoldProceduresFromExistingDatabaseAsync() { // Arrange var database = await SqlServerDatabaseFactory .ImportAsync("server=(local);database=OnlineStore;integrated security=yes;"); // Act foreach (var table in database.Tables) { var codeBuilder = new SqlStoredProcedureCodeBuilder { Database = database, Table = table, OutputDirectory = @"C:\Temp\CatFactory.SqlServer\StoredProceduresFromExistingDatabase", ForceOverwrite = true }; codeBuilder.CreateFile(); } // Assert }
public void ProjectScaffoldingWithDataAnnotationsForOnlineStoreDatabaseTest() { // Import database var database = SqlServerDatabaseFactory .Import(SqlServerDatabaseFactory.GetLogger(), "server=(local);database=OnlineStore;integrated security=yes;", "dbo.sysdiagrams"); // Create instance of Entity Framework Core Project var project = new EntityFrameworkCoreProject { Name = "OnlineStoreWithDataAnnotations.Core", Database = database, OutputDirectory = @"C:\Temp\CatFactory.EntityFrameworkCore\OnlineStoreWithDataAnnotations.Core" }; // Apply settings for Entity Framework Core project project.GlobalSelection(settings => { settings.ForceOverwrite = true; settings.UseDataAnnotations = true; settings.ConcurrencyToken = "Timestamp"; settings.AuditEntity = new AuditEntity { CreationUserColumnName = "CreationUser", CreationDateTimeColumnName = "CreationDateTime", LastUpdateUserColumnName = "LastUpdateUser", LastUpdateDateTimeColumnName = "LastUpdateDateTime" }; }); project.Selection("Sales.OrderHeader", settings => settings.EntitiesWithDataContracts = true); // Build features for project, group all entities by schema into a feature project.BuildFeatures(); // Scaffolding =^^= project .ScaffoldEntityLayer() .ScaffoldDataLayer(); }
public void SerializeAdventureWorks2017DatabaseToJsonTest() { // Arrange var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=AdventureWorks2017;integrated security=yes;MultipleActiveResultSets=true;", ExtendedProperties = { "MS_Description" }, Exclusions = { "dbo.EventLog" } } }; // Act var database = databaseFactory.Import(); var output = JsonConvert.SerializeObject(database, Formatting.Indented); File.WriteAllText("C:\\Temp\\CatFactory.SqlServer\\AdventureWorks2017.json", output); // Assert }
public void ProjectScaffoldingFromWideWorldImportersDatabaseTest() { // Import database var databaseFactory = new SqlServerDatabaseFactory(SqlServerDatabaseFactory.GetLogger()) { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=WideWorldImporters;integrated security=yes;", Exclusions = { "dbo.sysdiagrams" } } }; var database = databaseFactory.Import(); // Create instance of Dapper Project var project = new DapperProject { Name = "WideWorldImporters.Core", Database = database, OutputDirectory = @"C:\Temp\CatFactory.Dapper\WideWorldImporters.Core" }; // Apply settings for project project.GlobalSelection(settings => settings.ForceOverwrite = true); project.Selection("Warehouse.StockItems", settings => settings.AddPagingForGetAllOperation = true); // Build features for project, group all entities by schema into a feature project.BuildFeatures(); // Scaffolding =^^= project .ScaffoldEntityLayer() .ScaffoldDataLayer(); }
public async Task <IActionResult> ImportDatabaseAsync([FromBody] ImportDatabaseRequest request) { Logger?.LogDebug("'{0}' has been invoked", nameof(ImportDatabaseAsync)); var response = new ImportDatabaseResponse(); try { var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { Name = request.Name, ConnectionString = request.ConnectionString, ImportTables = request.ImportTables, ImportViews = request.ImportViews, ExtendedProperties = { Tokens.MS_DESCRIPTION } } }; var db = databaseFactory.Import(); await DbService.SerializeAsync(databaseFactory.DatabaseImportSettings); await DbService.SerializeAsync(db); response.Message = "The database was imported successfully"; } catch (Exception ex) { response.SetError(ex, Logger); } return(response.ToHttpResponse()); }
public void FullImportNorthwindDatabaseTest() { // Arrange var logger = LoggerMocker.GetLogger <SqlServerDatabaseFactory>(); var databaseFactory = new SqlServerDatabaseFactory(logger) { ConnectionString = "server=(local);database=Northwind;integrated security=yes;MultipleActiveResultSets=true;", ImportSettings = new DatabaseImportSettings { ImportStoredProcedures = true, ImportTableFunctions = true, ImportScalarFunctions = true } }; // Act var database = databaseFactory.Import(); // Assert Assert.True(database.Tables.Count > 0); Assert.True(database.Views.Count > 0); Assert.True(database.StoredProcedures.Count > 0); }
public void TestDropExtendedPropertiesForColumnFromTable() { // Arrange var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=Store;integrated security=yes;", ExtendedProperties = { "MS_Description" } } }; // Act var database = databaseFactory.Import(); var table = database.FindTable("Production.Product"); databaseFactory.DropExtendedPropertyIfExists(table, table.GetColumn("ProductID"), "MS_Description"); // Assert }
public async Task ImportWideWorldImportersDatabaseAsync() { // Arrange var databaseFactory = new SqlServerDatabaseFactory { DatabaseImportSettings = new DatabaseImportSettings { ConnectionString = "server=(local);database=WideWorldImporters;integrated security=yes;", ImportSequences = true } }; // Act var database = (SqlServerDatabase)await databaseFactory.ImportAsync(); // Assert Assert.True(database.FindTable("Warehouse.StockItems").Columns.Count > 0); Assert.True(database.FindTable("Warehouse.StockItems").Defaults.Count > 0); Assert.True(database.FindTable("Warehouse.StockItems")["Tags"].Computed == "yes"); Assert.False(database.FindTable("Warehouse.StockItems")["StockItemID"].ImportBag.ComputedExpression == null); Assert.True(database.Sequences.Count > 0); }