コード例 #1
0
        public void BuildDbModelChanges(DbUpgradeInfo upgradeInfo, IDbObjectComparer comparer, ILog log)
        {
            _upgradeInfo = upgradeInfo;
            _comparer    = comparer;
            _log         = log;
            _newModel    = upgradeInfo.NewDbModel;
            _oldModel    = upgradeInfo.OldDbModel;
            _options     = _upgradeInfo.Settings.UpgradeOptions;
            var driver = _newModel.Driver;

            _useRefIntegrity = driver.Supports(DbFeatures.ReferentialConstraints) && _newModel.Config.Options.IsSet(DbOptions.UseRefIntegrity);
            _compareTables   = _options.IsSet(DbUpgradeOptions.UpdateTables);
            _compareIndexes  = _options.IsSet(DbUpgradeOptions.UpdateIndexes);
            _compareViews    = driver.Supports(DbFeatures.Views) && _options.IsSet(DbUpgradeOptions.UpdateViews);
            _dropUnknown     = _options.IsSet(DbUpgradeOptions.DropUnknownObjects);
            _supportsSchemas = driver.Supports(DbFeatures.Schemas);

            // Nullify all obj.Peer fields to make sure we drop references to old model - mostly convenience in debugging
            // to allow multiple entry into this method in debugger
            _oldModel.ResetPeerRefs();
            MatchObjectsWithPeers();

            //new stuff
            BuildChangeList();

            // Do not do it here, refs to old objects might be need by Sql generators; we will reset refs after completing update
            // _newModel.ResetPeerRefs()
        }//class
コード例 #2
0
ファイル: DbModelComparer.cs プロジェクト: yuanfei05/vita
        public void AddDbModelChanges(DbUpgradeInfo upgradeInfo, MemoryLog log)
        {
            _upgradeInfo = upgradeInfo;
              _newModel = upgradeInfo.NewDbModel;
              _oldModel = upgradeInfo.OldDbModel;
              _log = log;
              _options = _upgradeInfo.Settings.UpgradeOptions;
              var driver = _newModel.Driver;
              _useRefIntegrity = driver.Supports(DbFeatures.ReferentialConstraints) && _newModel.Config.Options.IsSet(DbOptions.UseRefIntegrity) ;
              _compareTables = _options.IsSet(DbUpgradeOptions.UpdateTables);
              _compareIndexes = _options.IsSet(DbUpgradeOptions.UpdateIndexes);
              _compareViews = driver.Supports(DbFeatures.Views) && _options.IsSet(DbUpgradeOptions.UpdateViews);
              var usesStoredProcs = driver.Supports(DbFeatures.StoredProcedures) && _newModel.Config.Options.IsSet(DbOptions.UseStoredProcs);
              _compareStoredProcs = usesStoredProcs && _options.IsSet(DbUpgradeOptions.UpdateStoredProcs);
              _dropUnknown = _options.IsSet(DbUpgradeOptions.DropUnknownObjects);
              _supportsSchemas = driver.Supports(DbFeatures.Schemas);
              _supportsOrderInIndexes = driver.Supports(DbFeatures.OrderedColumnsInIndexes);

              // Nullify all obj.Peer fields to make sure we drop references to old model - mostly convenience in debugging
              // to allow multiple entry into this method in debugger
              _oldModel.ResetPeerRefs();
              MatchObjectsWithPeers();

              //new stuff
              BuildChangeList();

              // Do not do it here, refs to old objects might be need by Sql generators; we will reset refs after completing update
              // _newModel.ResetPeerRefs()
        }