示例#1
0
        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();
        }