Вопрос по connection, connection-string, linq-to-sql – Остановите LINQ to SQL dbml от обновления строки подключения, когда я перетаскиваю таблицы в файл dbml

12

Каждый раз, когда я перетаскиваю измененную таблицу в свой dbml, VS2010 хочет, чтобы я обновлял строку соединения, даже если я создал соединение для передачи данных с точно такой же информацией. Каждый раз, когда это происходит, моя строка подключения меняется на «DataSourceConnectionString». и я должен удалить его из 5 разных файлов и заменить его именем строки подключения, которую я использовал ранее, чтобы он не испортил всех остальных, использующих файл через систему контроля версий. Есть идеи?

Ваш Ответ

2   ответа
2

используйте перегрузку, которая позволяет вам указать строку подключения. Это перезапишет все значения, которые были там заданы Дизайнером. Например, вместо просто:

DataClasses1DataContext db = new DataClasses1DataContext();

использовать:

DataClasses1DataContext db = new DataClasses1DataContext("..connection string..");

или же

DataClasses1DataContext db = new DataClasses1DataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

Надеюсь, это то, что вы ищете.

Я не думал об этом. Было бы хлопотно набирать это миллион раз, так как у меня есть статические классы, которые я вызываю и которые требуют создания экземпляра DataContext. Я на самом деле понял это вчера, но у меня была проблема в течение многих месяцев, поэтому я хотел опубликовать это здесь для других людей. Спасибо за ответ Chris - Haddox Technologies
Кажется, что VS 2012 наконец-то понял все правильно, не вставляя строку подключения в код. В VS 2012 создание экземпляра контекста данных без параметров вызовет конструктор, который считывает значение из AppSettings в web.config. Используемый ключ AppSettings можно изменить / установить на вкладке Свойства файла dbml.
17

как повозился с ответами на некоторые несколько связанные вопросы.

Чтобы решить возникшую проблему, мне нужно было удалить созданное мною подключение к данным для подключения к моей базе данных из окна обозревателя серверов в VS2010. Затем вам нужно открыть конструктор .dbml, щелкнуть правой кнопкой мыши в пустом пространстве и выбрать свойства. Откроется окно свойств, и появится «Соединение». раздел, нажмите на маленькую стрелку, чтобы открыть его. Если щелкнуть строку строки подключения, появится кнопка с точками (...). При нажатии на эту кнопку откроется окно свойств подключения. В этом окне уже будут все те же свойства соединения, что и в вашем .dbml. Все, что вам нужно сделать, это нажать «ОК»; и он автоматически создаст для вас соединение данных в обозревателе серверов, что не заставит вас добавлять новую строку соединения в .dbml при перетаскивании в нее нового объекта!

Ура! Больше не нужно удалять лишние строки подключения при каждом обновлении! : D

Сначала я пропустил этап удаления соединения, созданного в обозревателе серверов, и подумал, что это решение не работает, но после перечитывания вашего ответа и точного выполнения ваших шагов мне было очень приятно узнать, что оноdoes Работа. +1 за то, что я узнал, как это сделать, так как это годами мешало мне!
Да! оно работает. но мне интересно, как ?! как это в этом ?!
благодарю вас. @ Стук да, это странно
Это так странно, но большое спасибо. Я ненавижу, что MS просто перестала работать над LINQ to SQL. Это способ проделать большую работу по восстановлению всего с помощью Entity Framework.

Похожие вопросы