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); }