Изменение строки подключения без перекомпиляции - PullRequest
3 голосов
/ 21 февраля 2012

Я работаю над приложением WinForm.Я реализовал логику доступа к данным в «библиотечном проекте» , который я установил в качестве ссылки в своем проекте WinForm.Я использую LINQ to SQL для подключения к базе данных моего проекта, сопоставляя используемые таблицы в файл dbml.Теперь я должен опубликовать свой проект и изменить строку подключения, чтобы она указала на производственную базу данных.

Можно ли изменить строку подключения без повторной компиляции проекта?Это будет очень полезно во время отладки и для обслуживания ...

Я пытался изменить его в app.config, а также в файле Settings, но, похоже, все еще указывает наРазработка БД.

Где я делаю не так?

1 Ответ

3 голосов
/ 21 февраля 2012

Решение, предлагаемое в этой статье, очень хорошее: http://goneale.com/2009/03/26/untie-linq-to-sql-connection-string-from-application-settings/

Но я решил решить свою проблему по-другому.

Не изменяя что-либо в файле dbml, я добавил в свой класс DAO конструктор, который принимает параметр:

public MyDataAccessClass(string connectionString)
{
     _connString = connectionString;
}

затем вместо использования конструктора DataClasses() для создания экземпляра класса LINQ-TO-SQL я заменил его на DataClasses(_connString).

Теперь я могу использовать библиотеку доступа к данным там, где мне нужно. Строка подключения будет установлена ​​в app.config приложения referencig (или в любом другом месте).

...