Squeak.ru - шаблоны программирования

Не удалось прочитать строку подключения из файла конфигурации

У меня есть файл app.config в моем проекте, как показано ниже.

У меня есть следующий код для чтения строки подключения:

string connectionstring = ConfigurationManager.ConnectionStrings["LibraryReservationSystemEntities"].ConnectionString;

Он показывает исключение, как указано ниже.

В экземпляре объекта не задана ссылка на объект.

Как мы можем это исправить?

Примечание. Это проект библиотеки классов. Я скопировал эту строку подключения из другого проекта, в котором есть файл EMDX для EF. У меня есть только один проект в моем текущем решении.

Примечание. Мне нужно создать экземпляр ObjectContext (из EF) из моего проекта. EMDX доступен в другом проекте.

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
<connectionStrings>
    <add name="LibraryReservationSystemEntities" connectionString="metadata=res://*/MyEDMtest.csdl|res://*/MyEDMtest.ssdl|res://*/MyEDMtest.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;AttachDbFilename=C:\DevTEST\Databases\LibraryReservationSystem.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
 </configuration>

ССЫЛКА

  1. Как программно установить строка подключения для Entity-Framework Code-First?

  2. Лучший способ инициализировать контекст инфраструктуры объектов?

18.07.2012

  • Вы уверены, что используете правильный файл конфигурации? 18.07.2012
  • @флем Да. У меня есть только один файл конфигурации в моем проекте. 18.07.2012
  • Что это за приложение (winforms, консоль, библиотека классов и т. д.)? У вас есть только один проект в решении? 18.07.2012
  • Конфиг принадлежит dll? 18.07.2012
  • Это проект библиотеки классов. Я скопировал эту строку подключения из другого проекта, в котором есть файл EMDX для EF. У меня есть только один проект в моем текущем решении. 18.07.2012

Ответы:


1

У вас не может быть файла конфигурации для проекта библиотеки. Этот файл конфигурации связан с исполняемой сборкой, которая может быть приложением winform, приложением WPF, консольным приложением, веб-сайтом ASP.Net в IIS...

Добавьте свой раздел ConnectionStrings в файл app.config (или web.config) фактической сборки, которая выполняется.

18.07.2012
  • Это мой ответ... (сделано 5 минут назад) 18.07.2012
  • @flem Извините, но в то время, когда я писал свой ответ, ваш был неполным. Вы отредактировали его позже. 18.07.2012
  • Когда EF добавляет EMDX, он добавляет файл конфигурации в свой проект. Почему это так? Мне нужно создать экземпляр ObjectContext из моего проекта. EMDX доступен в другом проекте. 18.07.2012
  • @Lijo В основном используется для функции обновления из БД модели EDMX. Он не представляет фактическую БД, которая будет использоваться. ObjectContext принимает в качестве входных данных различные форматы строк подключения. 18.07.2012
  • Спасибо. Я использую подход, упомянутый в stackoverflow.com/questions/6003085/ 18.07.2012

  • 2

    Проверь это

    you need to add a .dll reference for configuration manager
    
    recheck if your connection string is right
    
    check if you have more than one configuration file ex. web.config and app.config; so the ConfigurationManager is referencing the wrong file in the solution.
    
    18.07.2012

    3

    Если ConnectionStrings["myConnection"] возвращает значение null, то его разыменование для получения свойства Name завершится ошибкой в ​​конструкторе. Ошибка точно не в этом?

    Почему бы не поставить точку останова на этой строке и не заглянуть в ConfigurationManager.ConnectionStrings, чтобы проверить, что, по его мнению, есть, и очень внимательно проверить на наличие опечаток.

    После этого поставьте точку останова на первую строку метода и проверьте, какое значение имеет connectionString. Передача нулевого значения конструктору SqlConnection на самом деле не создает исключение, но при попытке открыть его вы получите исключение InvalidOperationException.

    18.07.2012
  • Я не использую какое-либо соединение с базой данных. Я просто пытаюсь прочитать значение конфигурации. Исключение возникает в самом этом чтении. 18.07.2012
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...