public DbModelBuilder(EntityModel entityModel, DbModelConfig config, IActivationLog log) { _entityModel = entityModel; _dbModelConfig = config; _namingPolicy = _dbModelConfig.NamingPolicy; _log = log; _driver = _dbModelConfig.Driver; }
public readonly string SchemaManagementConnectionString; //optional, admin-privilege conn string public DbSettings(DbDriver driver, DbOptions options, string connectionString, string schemaManagementConnectionString = null, DbUpgradeMode upgradeMode = DbUpgradeMode.NonProductionOnly, DbUpgradeOptions upgradeOptions = DbUpgradeOptions.Default, IDbNamingPolicy namingPolicy = null, string dataSourceName = "(Default)") : this(new DbModelConfig(driver, options, namingPolicy), connectionString, schemaManagementConnectionString, upgradeMode, upgradeOptions, dataSourceName) { }
//Prepares for full run with a specified server internal static void Reset(TestRunConfig config) { CurrentConfig = config; ServerType = config.ServerType; if (BooksApp != null) { BooksApp.Flush(); } Thread.Sleep(100); //to allow log dump of buffered messages DeleteLogFiles(); //it will happen only once WriteLog("\r\n------------------------ " + config.ToString() + "---------------------------------------------\r\n\r\n"); ServerType = config.ServerType; UseBatchMode = config.UseBatchMode; BooksApp = null; _initFailed = false; //Check connection string Util.Check(!string.IsNullOrEmpty(config.ConnectionString), "Connection string not found for server: {0}.", ServerType); Driver = DataUtility.CreateDriver(ServerType); var dbOptions = Driver.GetDefaultOptions(); if (config.UseBatchMode) { dbOptions |= DbOptions.UseBatchMode; } else { dbOptions &= ~DbOptions.UseBatchMode; } // Custom naming policy. Uncomment below to see how all-lower case policy works for Postgres IDbNamingPolicy customNamingPolicy = null; //if(ServerType == DbServerType.Postgres) //customNamingPolicy = new AllLowCaseNamingPolicy("books", "login"); DbSettings = new DbSettings(Driver, dbOptions, config.ConnectionString, upgradeMode: DbUpgradeMode.Always, namingPolicy: customNamingPolicy); //Test: remap login schema into login2 // Remapping schemas might used in MySql, where schemas are actually databases // if (ServerType == DbServerType.MsSql) // DbSettings.ModelConfig.MapSchema("login", "login2"); }
public DbModelConfig(DbDriver driver, DbOptions options, IDbNamingPolicy namingPolicy = null, IDictionary <string, string> schemaMappings = null) { Util.Check(driver != null, "Driver parameter may not be null."); Util.Check(driver.TypeRegistry != null, "DbDriver.TypRegistry is null, DbDriver-derived class must create driver-specific instance."); Util.Check(driver.SqlDialect != null, "DbDriver.SqlDialect is null, DbDriver-derived class must create driver-specific instance."); Driver = driver; Options = options; NamingPolicy = namingPolicy; //import schema mappings if (schemaMappings != null) { foreach (var de in schemaMappings) { SchemaMappings[de.Key] = de.Value; } } }