C # SMO - Scripting Table Data to File. Lanzar error

Estoy tratando de crear una copia de seguridad de los datos contenidos en mi base de datos antes de volver a crear las tablas. Llegué a conectarme con el servidor y crear el archivo para almacenar el SQL. El problema es que arroja un error en la última línea.

"Referencia a objeto no establecida como instancia de un objeto"

He estado en este proyecto todo el día, así que podría estar perdiendo algo con lo que un par de ojos nuevos podrían ayudar.

Aquí está el código:

public void scriptTables()
    {
        string folder = HttpContext.Current.Server.MapPath("/Scripts/SQLScripts/");

        Server myServer = new Server(".\\SQLEXPRESS");
        Database CMSDB = myServer.Databases["CMSDB"];

        Scripter script = new Scripter(myServer);
        ScriptingOptions so = new ScriptingOptions();
        so.ScriptData = true;
        so.ScriptSchema = true;
        so.ScriptDrops = false;

        foreach (Table table in CMSDB.Tables)
        {
            string tables = table.ToString();
            string filename = folder + table + ".sql";
            FileStream fs = File.Create(filename);
            so.FileName = filename;

            CMSDB.Tables[tables].EnumScript(so);
        }
    }
}

Algunos antecedentes de lo que estoy haciendo:

Quiero extraer los datos que ya existen en la base de datos y luego cambiar los modelos de entidad. Cuando la aplicación se reinicie, el marco EF se soltará y volverá a crear la base de datos, momento en el que volveré a ingresar los datos que estaban allí anteriormente. No estoy muy seguro de si todo el proceso funcionará, pero esto tendrá que hacerlo hasta que publiquen la función de migración en EF.

Espero que alguien pueda ayudar. Gracia

Respuestas a la pregunta(3)

Su respuesta a la pregunta