protected virtual void ConnectToDatabase(DbSettings dbSettings) { switch (this.Status) { case EntityAppStatus.Created: this.Init(); break; case EntityAppStatus.Shutdown: return; } ActivationLog.Info(" Connecting to data source {0}.", dbSettings.DataSourceName); dbSettings.CheckConnectivity(rethrow: true); var dbModel = GetCreateDbModel(dbSettings, ActivationLog); var db = new Database(dbModel, dbSettings); var ds = new DataSource(dbSettings.DataSourceName, db); this.DataAccess.RegisterDataSource(ds); this.DataSourceEvents.OnDataSourceChange(new DataSourceEventArgs(db, dbSettings.DataSourceName, DataSourceEventType.Connecting)); CheckUpgradeDatabase(db); ActivationLog.Flush(); this.Status = EntityAppStatus.Connected; this.DataSourceEvents.OnDataSourceChange(new DataSourceEventArgs(db, dbSettings.DataSourceName, DataSourceEventType.Connected)); ActivationLog.Info("Connected to {0}.", dbSettings.DataSourceName); ActivationLog.Flush(); }