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

Итак, история такая.

у меня есть проект под названием PA.DLL, в которой есть модель сущности внутри файла (edmx).

в другом проекте, который я ссылаюсь на PA.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 ответов


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


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

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

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

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