예제 #1
0
 public DbModelBuilder(EntityModel entityModel, DbModelConfig config, IActivationLog log)
 {
     _entityModel   = entityModel;
     _dbModelConfig = config;
     _namingPolicy  = _dbModelConfig.NamingPolicy;
     _log           = log;
     _driver        = _dbModelConfig.Driver;
 }
예제 #2
0
파일: DbSettings.cs 프로젝트: radtek/vita
        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)
        {
        }
예제 #3
0
        //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");
        }
예제 #4
0
 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;
         }
     }
 }