Файл Web.Config и Linq to Sql меняют свое место

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

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


person Ryan    schedule 25.06.2009    source источник


Ответы (1)


Похоже, что при обновлении 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, поэтому другим разработчикам может быть непросто понять, что происходит.

person Ryan Versaw    schedule 20.07.2009
comment
Я также понимаю, что вы, возможно, уже решили эту проблему, но я увидел вопрос и решил, что на него можно найти ответ! - person Ryan Versaw; 20.07.2009