Развертывание проекта с использованием LINQ to SQL

Я работаю над приложением winforms, используя LINQ to SQL, и создаю приложение, используя экземпляр SQL Express на своей рабочей станции. Окончательная установка проекта будет на правильном SQL Server 2005.

База данных имеет то же имя, и все таблицы идентичны, но имя хоста отличается.

Единственный способ заставить мое приложение работать с одной машины на другую — повторно открыть код в Visual Studio, удалить все объекты, ссылающиеся на экспресс-экземпляр SQL, из моего .mdbl, сохранить проект, подключиться к другой сервер, перетащите все ссылки обратно и снова перестройте приложение для выпуска.

ответ здесь предполагает, что можно просто изменить файл app.config/web.config, который будет работать для asp.net, но это приложение winforms. Как правильно заставить приложения LINQ to SQL использовать новую базу данных без повторного открытия приложения в Visual Studio?


person TheoJones    schedule 08.09.2008    source источник


Ответы (4)


Если я правильно понимаю вашу проблему, вы просто меняете строку подключения к базе данных в вашем app.config/web.config.

Изменить, опубликуйте пояснение: у вас где-то хранятся строки подключения. Они могут быть в app.config вашего сервера. Тем не менее, вы получаете их откуда-то, и это где-то может быть в app.config. Используйте это тогда :)

person Omer van Kloeten    schedule 08.09.2008

Одним из хороших решений является добавление еще одного соединения к самому файлу dbml. Вы можете добраться до этого, щелкнув правой кнопкой мыши поле рабочей поверхности и выбрав свойства. Оттуда вы можете добавить еще одну строку подключения. Вместо того, чтобы все удалять и перетаскивать, просто измените строку и перекомпилируйте.

Но если вы хотите получить причудливую сентиментальность, вы можете сделать так, чтобы программа автоматически определяла, выполняется ли она локально или нет, используя эту удобную служебную функцию: обнаружение локального

И перейдите оттуда, чтобы установить соответствующую строку подключения на основе результатов.

person KevDog    schedule 20.09.2008

Более полезный ответ...

app.config заканчивается как appname.exe.config, когда он был построен.

вместо того, чтобы открывать Visual Studio и изменять app.config, вы можете просто отредактировать файл appname.exe.config и перезапустить приложение.

person TheoJones    schedule 02.10.2008

Я считаю, что вы можете хранить информацию о подключении в файле app.config и получать ее оттуда. Вот статья о том, как сделать это с помощью LINQ to SQL. После развертывания на рабочем сервере вы можете просто отредактировать XML, чтобы изменить источник данных.

person VanOrman    schedule 08.09.2008