Строка подключения EDMX


Итак, история выглядит так.

У меня есть проект, который называется ПА.DLL, которые имеют модель сущности внутри него (edmx) файл.

В другом проекте, который я ссылаюсь на ПА.DLL, я скопировал строку подключения, которая была создана (автоматически)при создании файла edmx в главное приложение приложения.конфиг.

Однако, когда я загружаю и запускаю следующие строки:

using (PAEntities analytix = new PAEntities())
           {
...
}

Я получаю следующую ошибку:

System.ArgumentException: The specified default EntityContainer name 'PAEntities' could not be found in the mapping and metadata information.

Есть ли у кого-нибудь представление о том, в чем причина этого ошибка?

Вот как настроена моя строка подключения:

<add name="PAEntities" 
    connectionString="metadata=res://*/PAEntities.csdl|res://*/PAEntities.ssdl|res://*/PAEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=XSXSX;Initial Catalog=PA;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

Спасибо

2 7

2 ответа:

Одно из решений заключается в том, чтобы поместить строку подключения в конфигурационный файл проекта, использующего вашу библиотеку DLL.
Другой - передать строку соединения в коде (использовать параметризованный конструктор Паентитов).

В обозревателе решений щелкните правой кнопкой мыши файл модели данных сущности (.edmx) и нажмите кнопку "Открыть с помощью". Откроется диалоговое окно выбора программы для открытия файла. Выберите или дважды щелкните на "XML (text) Editor".

Теперь вы смотрите на XML-версию EDM-файла, где вы можете легко редактировать имя EntityContainer.

Если вы изменили строку подключения в файле webconfig, убедитесь, что "DefaultContainerName" - это имя раздела "EntityContainer". в этом XML-файле.

Обычно при обновлении defaultContainerName в *.Дизайнер.cs-файл, он не обновляет XML-файл. Поэтому вы должны сделать это вручную.