public static void DropObject(this IAlterProcessor proc, IAbstractObjectStructure obj) { var tbl = obj as ITableStructure; if (tbl != null) { proc.DropTable(tbl); return; } var col = obj as IColumnStructure; if (col != null) { proc.DropColumn(col); return; } var cnt = obj as IConstraint; if (cnt != null) { proc.DropConstraint(cnt); return; } var spe = obj as ISpecificObjectStructure; if (spe != null) { proc.DropSpecificObject(spe); return; } var sch = obj as ISchemaStructure; if (sch != null) { proc.DropSchema(sch); return; } var dom = obj as IDomainStructure; if (dom != null) { proc.DropDomain(dom); return; } }