Файл Web.Config и Linq to Sql меняют свое место - PullRequest
0 голосов
/ 25 июня 2009

У меня странная проблема с моим проектом. Это был веб-сайт, который теперь преобразован в веб-приложение, находящееся в решении. Первоначально классы были настроены с использованием файла Linq to Sql .dbml, в котором строка подключения была сохранена в /MyProject/web.config. Теперь проект («Веб-приложение») находится в решении, и когда я изменяю dbml-файл Linq на Sql, он создает файл web.config с только строкой подключения на один уровень выше, в /MySolution/web.config, хотя я до сих пор есть /MySolution/MyProject/web.config. Это дает ошибки с повторяющимися именами строки подключения. Итак, как я могу использовать Linq to Sql, просто используйте файл web.config в /MySolution/MyProject/web.config, или мой весь файл web.config должен быть в MySolution / web.config (я бы предпочел сохранить его где это) Спасибо!

PS: текстовый текст данных находится в /MySolution/MyProject/MyCode/Models/MyDataContext.dbml

1 Ответ

0 голосов
/ 20 июля 2009

Похоже, что обновление dbml всегда приведет к обновлению только корневого web.config. Скорее всего, будет проще поддерживать ваш проект, если вы используете только этот корневой web.config, но у вас есть другой вариант.

Каждая папка может иметь свою собственную конфигурацию, поэтому вы получаете исключение для дублированного имени. Если вы хотите обойти это, вы можете сначала удалить, а затем добавить строку подключения с тем же именем. Если вы сделаете это, ваш блок connectionStrings (в пределах /MySolution/MyProject/web.config) будет выглядеть примерно так:

  <connectionStrings>
    <remove name="MyConnectionString"/>
    <add name="MyConnectionString" connectionString="XXXXXXXXXX"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

Как я уже сказал, я не могу порекомендовать вам сделать это, поскольку ваш dbml все равно будет сохранен в корневом web.config, поэтому другим разработчикам может быть нелегко понять, что происходит.

...