Esempio n. 1
0
        public override IEnumerable <MigrationStatement> Generate(IEnumerable <MigrationOperation> migrationOperations, string providerManifestToken)
        {
            MySqlConnection           con   = new MySqlConnection();
            List <MigrationStatement> stmts = new List <MigrationStatement>();

            _providerManifestToken = providerManifestToken;
            _providerManifest      = DbProviderServices.GetProviderServices(con).GetProviderManifest(providerManifestToken);

            //verify if there is one or more add/alter column operation, if there is then look for primary key operations. Alter in case that the user wants to change the current PK column
            if ((from cols in migrationOperations.OfType <AddColumnOperation>() select cols).Count() > 0 || (from cols in migrationOperations.OfType <AlterColumnOperation>() select cols).Count() > 0)
            {
                _pkOperations = (from pks in migrationOperations.OfType <AddPrimaryKeyOperation>() select pks).ToList();
            }

            foreach (MigrationOperation op in migrationOperations)
            {
                if (!_dispatcher.ContainsKey(op.GetType().Name))
                {
                    throw new NotImplementedException(op.GetType().Name);
                }
                OpDispatcher opdis = _dispatcher[op.GetType().Name];
                stmts.Add(opdis(op));
            }
            if (_specialStmts.Count > 0)
            {
                foreach (var item in _specialStmts)
                {
                    stmts.Add(item);
                }
            }
            return(stmts);
        }
        public override IEnumerable <MigrationStatement> Generate(IEnumerable <MigrationOperation> migrationOperations, string providerManifestToken)
        {
            MySqlConnection           con   = new MySqlConnection();
            List <MigrationStatement> stmts = new List <MigrationStatement>();

            _providerManifestToken = providerManifestToken;
            _providerManifest      = DbProviderServices.GetProviderServices(con).GetProviderManifest(providerManifestToken);

            foreach (MigrationOperation op in migrationOperations)
            {
                if (!_dispatcher.ContainsKey(op.GetType().Name))
                {
                    throw new NotImplementedException(op.GetType().Name);
                }
                OpDispatcher opdis = _dispatcher[op.GetType().Name];
                stmts.Add(opdis(op));
            }
            if (_specialStmts.Count > 0)
            {
                foreach (var item in _specialStmts)
                {
                    stmts.Add(item);
                }
            }
            return(stmts);
        }