Развертывание проекта с использованием LINQ to SQL
-
09-06-2019 - |
Вопрос
Я работаю над приложением winforms, используя LINQ to SQL, и создаю приложение, используя экземпляр SQL Express на моей рабочей станции.Окончательная установка проекта будет произведена на надлежащем SQL Server 2005.
База данных имеет одно и то же имя, и все таблицы идентичны, но имя хоста отличается.
Единственный способ, который я нашел, чтобы заставить мое приложение работать с одной машины на другую, - это повторно открыть код в Visual Studio, удалить все объекты, ссылающиеся на экземпляр SQL express из my .mdbl, сохранить проект, подключиться к другому серверу, снова включить все ссылки и перестроить приложение для выпуска еще раз.
в ответе здесь предлагается, что можно просто изменить файл app.config / web.config, который будет работать для asp.net, но это приложение winforms.Каков правильный способ заставить приложения LINQ to SQL использовать новую базу данных без необходимости повторного открытия приложения в Visual Studio?
Решение
Если я правильно понимаю вашу проблему, вы просто меняете строку подключения к базе данных в вашем app.config / web.config.
Редактировать, опубликовать разъяснение:У вас где-то хранятся строки подключения.Они могут быть в app.config вашего сервера.Тем не менее, вы получаете их откуда-то, и это где-то может быть в app.config.Используйте это тогда :)
Другие советы
Одним из хороших решений является добавление другого подключения к самому файлу dbml.Вы можете перейти к этому, щелкнув правой кнопкой мыши по полю конструкторской поверхности и выбрав пункт Свойства.Оттуда вы можете добавить еще одну строку подключения.Вместо того чтобы удалять все и перерисовывать, просто измените строку и перекомпилируйте.
Но если вы хотите добиться фантастичности, вы можете заставить программу автоматически определять, выполняется ли она локально или нет, используя эту удобную служебную функцию: обнаруживать локальные
И перейдите оттуда, чтобы установить соответствующую строку подключения на основе результатов.
Более полезный ответ...
app.config заканчивается как appname.exe.config, когда он был собран.
вместо того чтобы открывать Visual Studio и изменять app.config, вы можете просто отредактировать файл appname.exe.config и перезапустить приложение.
Я полагаю, что вы можете сохранить информацию о подключении в файле app.config и извлечь ее оттуда. Здесь это пост о том, как сделать это с помощью LINQ to SQL.Как только вы развернете его на рабочем сервере, вы можете просто отредактировать XML, чтобы изменить источник данных.