В составе VS2008 имеется класс SQLMetal.exe, который выполняет важную часть создания файла DataContext.cs. Я думаю, что все, что вам нужно сделать, это изменить файл DBML (это простой файл XML), запустить SQLMetal (создание .CS), а затем запустить csc.exe (часть .NET Framework) для создания сборки ( Будет проще, если вы поместите DataContext в сборку самостоятельно). По сути это сводится к варианту 2, но с гораздо меньшим количеством файлов, которые необходимо установить.
Обновление : перечитывая ваш вопрос, я понимаю, что изменились не имена таблиц, а имя database . Это другая проблема (хотя решение, описанное выше, будет работать и для этого).
Когда VS2008 генерирует класс DataContext из файла .dbml, он создает два конструктора: один, который не принимает параметров, и один, который принимает одну строку (плюс еще пару кодов, которые мы можем игнорировать).
Нулевой параметр ctor использует строку подключения, которую вы использовали при создании dbml, который затем встраивает в файл ресурсов. Это невероятно тупой дизайн, и на самом деле его следует использовать только для проверки кода и демонстраций.
Весь реальный производственный код должен использовать ctor, который принимает строку, в частности, строку подключения, которую вы должны прочитать из файла app.config.
Это, конечно, означает, что «правильное» решение - это вариант № 1 - переписать код в вашем офисе и переустановить. Это беспокоит, но в конечном итоге это к лучшему.